You are here

function ctools_object_cache_test in Chaos Tool Suite (ctools) 7

Same name and namespace in other branches
  1. 6 includes/object-cache.inc \ctools_object_cache_test()

Determine if another user has a given object cached.

This is very useful for 'locking' objects so that only one user can modify them.

Parameters

$obj: A 128 character or less string to define what kind of object is being stored; primarily this is used to prevent collisions.

$name: The name of the object being removed.

$sid: The session id, allowing someone to use Session API or their own solution; defaults to session_id().

Return value

An object containing the UID and updated date if found; NULL if not.

1 call to ctools_object_cache_test()
page_manager_get_page_cache in page_manager/page_manager.module
Get the cached changes to a given task handler.

File

includes/object-cache.inc, line 140
The non-volatile object cache is used to store an object while it is being edited, so that we don't have to save until we're completely done. The cache should be 'cleaned' on a regular basis, meaning to remove old objects from the…

Code

function ctools_object_cache_test($obj, $name, $sid = NULL) {
  if (!$sid) {
    $sid = session_id();
  }
  return db_query('SELECT s.uid, c.updated FROM {ctools_object_cache} c INNER JOIN {sessions} s ON c.sid = s.sid WHERE s.sid <> :session_id AND c.obj = :obj AND c.name = :name ORDER BY c.updated ASC', array(
    ':session_id' => $sid,
    ':obj' => $obj,
    ':name' => md5($name),
  ))
    ->fetchObject();
}