Public Member Functions | Data Fields

ilObjectDataCache Class Reference

Public Member Functions

 ilObjectDataCache ()
 deleteCachedEntry ($a_obj_id)
 lookupObjId ($a_ref_id)
 lookupTitle ($a_obj_id)
 lookupType ($a_obj_id)
 lookupOwner ($a_obj_id)
 lookupDescription ($a_obj_id)
 lookupLastUpdate ($a_obj_id)
 __isReferenceCached ($a_ref_id)
 checks whether an reference id is already in cache or not
 __isObjectCached ($a_obj_id)
 checks whether an object is aleady in cache or not
 __storeReference ($a_ref_id)
 Stores Reference in cache.
 __storeObjectData ($a_obj_id)
 Stores object data in cache.

Data Fields

 $db = null
 $reference_cache = array()
 $object_data_cache = array()

Detailed Description

Definition at line 34 of file class.ilObjectDataCache.php.


Member Function Documentation

ilObjectDataCache::__isObjectCached ( a_obj_id  ) 

checks whether an object is aleady in cache or not

private

Parameters:
int $a_obj_id object id
Returns:
boolean

Definition at line 138 of file class.ilObjectDataCache.php.

Referenced by lookupDescription(), lookupLastUpdate(), lookupOwner(), lookupTitle(), and lookupType().

        {
                static $cached = 0;
                static $not_cached = 0;
                        

                if(@$this->object_data_cache[$a_obj_id])
                {
                        #echo "Object ". ++$cached ."cached<br>";
                        return true;
                }
                #echo "Object ". ++$not_cached ." not cached<br>";
                return false;
        }

Here is the caller graph for this function:

ilObjectDataCache::__isReferenceCached ( a_ref_id  ) 

checks whether an reference id is already in cache or not

private

Parameters:
int $a_ref_id reference id
Returns:
boolean

Definition at line 115 of file class.ilObjectDataCache.php.

Referenced by lookupObjId().

        {
                #return false;
                #static $cached = 0;
                #static $not_cached = 0;

                if(@$this->reference_cache[$a_ref_id])
                {
                        #echo "Reference ". ++$cached ."cached<br>";
                        return true;
                }
                #echo "Reference ". ++$not_cached ." not cached<br>";
                return false;
                
        }

Here is the caller graph for this function:

ilObjectDataCache::__storeObjectData ( a_obj_id  ) 

Stores object data in cache.

private

Parameters:
int $a_obj_id object id
Returns:
bool

Definition at line 183 of file class.ilObjectDataCache.php.

References $query, $res, and $row.

Referenced by lookupDescription(), lookupLastUpdate(), lookupObjId(), lookupOwner(), lookupTitle(), and lookupType().

        {
                $query = "SELECT * FROM object_data WHERE obj_id = '".$a_obj_id."'";
                $res = $this->db->query($query);
                while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
                {
                        $this->object_data_cache[$a_obj_id]['title'] = $row->title;
                        $this->object_data_cache[$a_obj_id]['description'] = $row->description;
                        $this->object_data_cache[$a_obj_id]['type'] = $row->type;
                        $this->object_data_cache[$a_obj_id]['owner'] = $row->owner;
                        $this->object_data_cache[$a_obj_id]['last_update'] = $row->last_update;

                }
                return true;
        }

Here is the caller graph for this function:

ilObjectDataCache::__storeReference ( a_ref_id  ) 

Stores Reference in cache.

Maybe it could be useful to find all references of that object andd store them also in the cache. But this would be an extra query.

private

Parameters:
int $a_ref_id reference id
Returns:
int $obj_id

Definition at line 163 of file class.ilObjectDataCache.php.

References $query, $res, and $row.

Referenced by lookupObjId().

        {
                global $ilDB;
                
                $query = "SELECT obj_id FROM object_reference WHERE ref_id = ".$ilDB->quote($a_ref_id);
                $res = $this->db->query($query);
                while($row = $res->fetchRow(DB_FETCHMODE_ASSOC))
                {
                        $this->reference_cache[$a_ref_id] = $row['obj_id'];
                }
                return (int) @$this->reference_cache[$a_ref_id];
        }

Here is the caller graph for this function:

ilObjectDataCache::deleteCachedEntry ( a_obj_id  ) 

Definition at line 47 of file class.ilObjectDataCache.php.

        {
                unset($this->object_data_cache[$a_obj_id]);
        }

ilObjectDataCache::ilObjectDataCache (  ) 

Definition at line 40 of file class.ilObjectDataCache.php.

        {
                global $ilDB;

                $this->db =& $ilDB;
        }

ilObjectDataCache::lookupDescription ( a_obj_id  ) 

Definition at line 89 of file class.ilObjectDataCache.php.

References __isObjectCached(), and __storeObjectData().

        {
                if(!$this->__isObjectCached($a_obj_id))
                {
                        $this->__storeObjectData($a_obj_id);
                }
                return @$this->object_data_cache[$a_obj_id]['description'];
        }

Here is the call graph for this function:

ilObjectDataCache::lookupLastUpdate ( a_obj_id  ) 

Definition at line 98 of file class.ilObjectDataCache.php.

References __isObjectCached(), and __storeObjectData().

        {
                if(!$this->__isObjectCached($a_obj_id))
                {
                        $this->__storeObjectData($a_obj_id);
                }
                return @$this->object_data_cache[$a_obj_id]['last_update'];
        }

Here is the call graph for this function:

ilObjectDataCache::lookupObjId ( a_ref_id  ) 

Definition at line 52 of file class.ilObjectDataCache.php.

References $obj_id, __isReferenceCached(), __storeObjectData(), and __storeReference().

        {
                if(!$this->__isReferenceCached($a_ref_id))
                {
                        $obj_id = $this->__storeReference($a_ref_id);
                        $this->__storeObjectData($obj_id);
                }
                return (int) @$this->reference_cache[$a_ref_id];
        }

Here is the call graph for this function:

ilObjectDataCache::lookupOwner ( a_obj_id  ) 

Definition at line 80 of file class.ilObjectDataCache.php.

References __isObjectCached(), and __storeObjectData().

        {
                if(!$this->__isObjectCached($a_obj_id))
                {
                        $this->__storeObjectData($a_obj_id);
                }
                return @$this->object_data_cache[$a_obj_id]['owner'];
        }

Here is the call graph for this function:

ilObjectDataCache::lookupTitle ( a_obj_id  ) 

Definition at line 62 of file class.ilObjectDataCache.php.

References __isObjectCached(), and __storeObjectData().

        {
                if(!$this->__isObjectCached($a_obj_id))
                {
                        $this->__storeObjectData($a_obj_id);
                }
                return @$this->object_data_cache[$a_obj_id]['title'];
        }

Here is the call graph for this function:

ilObjectDataCache::lookupType ( a_obj_id  ) 

Definition at line 71 of file class.ilObjectDataCache.php.

References __isObjectCached(), and __storeObjectData().

        {
                if(!$this->__isObjectCached($a_obj_id))
                {
                        $this->__storeObjectData($a_obj_id);
                }
                return @$this->object_data_cache[$a_obj_id]['type'];
        }

Here is the call graph for this function:


Field Documentation

ilObjectDataCache::$db = null

Definition at line 36 of file class.ilObjectDataCache.php.

ilObjectDataCache::$object_data_cache = array()

Definition at line 38 of file class.ilObjectDataCache.php.

ilObjectDataCache::$reference_cache = array()

Definition at line 37 of file class.ilObjectDataCache.php.


The documentation for this class was generated from the following file: