Squiz Matrix  4.12.2
 All Data Structures Namespaces Functions Variables Pages
Locking_Method_Memcache Class Reference
Inheritance diagram for Locking_Method_Memcache:
Locking_Method Asset MySource_Object

Public Member Functions

 __construct ($assetid=0)
 
- Public Member Functions inherited from Locking_Method
 __construct ($assetid=0)
 
- Public Member Functions inherited from Asset
 Asset ($assetid=0)
 
 create (Array &$link)
 
 load ($assetid)
 
 _loadDataPaths ()
 
 reload ()
 
 canDelete ()
 
 delete ($release_lock=TRUE, $check_locked=TRUE)
 
 useSystemVersion ()
 
 loadSystemVersion ()
 
 saveSystemVersion ()
 
 clearSystemVersion ()
 
 revertToSystemVersion ()
 
 revertNoticeLinksToSystemVersion ()
 
 _updated ($update_parents=TRUE)
 
 type ()
 
 getTypeAncestors ($include_asset=TRUE)
 
 incrementVersion ($number='micro', $update_parents=TRUE)
 
 getLanguages ()
 
 setLanguages (Array $languages)
 
 setCharset ($charset)
 
 setForceSecure ($force_secure)
 
 remapAssetids (Array $map)
 
 morph ($new_type_code)
 
 _morphCleanup ($new_type_code)
 
 onRequestKeywords (Asset $broadcaster, Array $vars=Array())
 
 canClone ()
 
 cloneComponents (Asset $clone, Array $components, $override=FALSE)
 
 cloneComponentsAdditional (Asset $clone, Array $components)
 
 cloneLinks (Asset $clone)
 
 getStatus ()
 
 getAvailableStatii ()
 
 getStatusDescription ()
 
 processStatusChange ($new_status, $update_parents=TRUE, $run_updated=TRUE)
 
 setDate ($date_type, $time=NULL, $userid=NULL)
 
 lockTypes ()
 
 canForceablyAcquireLock ($lock_type)
 
 getEditingLocks ($keywords)
 
 _getAllowedLinks ()
 
 createLink (Asset $minor, $link_type, $value='', $sort_order=NULL, $dependant='0', $exclusive='0', $moving=FALSE, $locked=0)
 
 prepareLink (Asset $asset, $side_of_link, &$link_type, &$value, &$sort_order, &$dependant, &$exclusive)
 
 canCreateLink (Asset $minor, $link_type, $exclusive)
 
 canMoveLink (Asset $minor, Asset $old_major, $link_type)
 
 describeLink ($linkid)
 
 isDeletableLink ($linkid)
 
 canDeleteLink ($linkid)
 
 deleteLink ($linkid, $check_locked=TRUE)
 
 linksUpdated ()
 
 canCloneLink ()
 
 saveAttributes ($dont_run_updated=FALSE, $log_message=TRUE)
 
 setAttrValue ($name, $value)
 
 attr ($name)
 
attrByRef ($name)
 
 getAttribute ($name, $mute_errors=FALSE)
 
 getAssetKeywords ($descriptions=FALSE)
 
 getAvailableKeywords ()
 
 getKeywordReplacement ($keyword)
 
 getAssetWebPathKeywordReplacement ()
 
 getCustomKeywordReplacements ($keywords=Array(), $invoke_backend=FALSE)
 
 processCustomKeywords ($keywords=Array())
 
 getContent ()
 
 setContent ()
 
 getEffectiveLastUpdatedTime ($assetids)
 
 readAccess (Array $assetids=Array())
 
 writeAccess ($lock_type='', Array $assetids=Array(), $only_workflow=TRUE)
 
 adminAccess ($lock_type='', Array $assetids=Array())
 
 backendAccess ()
 
 liveEditAccess ($lock_type)
 
 canliveEdit ($lock_type)
 
 effectiveUnrestricted ()
 
 checkAccess ($perm, $lock_type, Array $assetids=Array(), $only_workflow=TRUE)
 
 accessEffective ()
 
 permissionsUpdated ()
 
 printFrontend ()
 
 printFrontendAsset (Asset $asset, $design=NULL)
 
 getValidProtocols ()
 
 printHead ()
 
 printBody ()
 
 getCurrentPaintLayoutName ()
 
 getCurrentDesignName ()
 
 printBodyWithPaintLayout ($layout_id='')
 
 initLimbo ()
 
 printLimbo ()
 
 paintBackend (Backend_Outputter $o)
 
 getPrefix ()
 
 processBackend (Backend_Outputter $o, Array &$link)
 
 getEI ()
 
 getEditFns ()
 
 getBackendHref ($screen='', $backend_page=TRUE)
 
 getURL ($base_url=NULL, $ignore_rollback=FALSE, $base_contextid=NULL)
 
 getURLs ()
 
 getHref ($base_url=NULL, $ignore_rollback=FALSE)
 
 getWebDataPath ()
 
 getWebPaths ()
 
 saveWebPaths ($paths, $auto_add_remaps=TRUE)
 
 getLookups ($field='')
 
 getDesignLookups ()
 
 getLookupValues ($inherited=NULL, $prefix='', $like_search=TRUE, $ignore_override=FALSE)
 
 deleteLookupValue ($layout_name, $layout_value)
 
 setPaintLayouts ($layouts)
 
 updateLookups ($auto_add_remaps=TRUE)
 
 setLookupValues (Array $values)
 
 getAssetStatusDescriptionKeywordReplacement ()
 
 getAssetStatusColourKeywordReplacement ()
 
 replaceKeywordsInString ($string)
 
 fastTrack ($tasks)
 
 unFastTrack ($tasks)
 
 shouldFastTrack ($task, $assetid=NULL)
 
 getFaskTrackedTaskAssetids ($task)
 
 getDependantParentsURL ()
 
- Public Member Functions inherited from MySource_Object
 MySource_Object ()
 
 __sleep ()
 
 __wakeup ()
 

Static Public Member Functions

static _initMemcache ()
 
static acquireLock ($lockid, $source_lockid='', $expires=0)
 
static updateLock ($lockid, $expires)
 
static releaseLock ($lockid)
 
static getLockInfo ($lockid, $full_chain=FALSE, $check_expires=TRUE, $allow_only_one=TRUE)
 
static supportsGetActiveLocks ()
 
static supportsChangeLockOwner ()
 
static supportsDeletingExpiredLocks ()
 
static failureCallback ($hostname, $port)
 
- Static Public Member Functions inherited from Locking_Method
static acquireLock ($lockid, $source_lockid='', $expires=0)
 
static updateLock ($lockid, $expires=0)
 
static releaseLock ($lockid)
 
static getLockInfo ($lockid, $full_chain=FALSE, $check_expires=TRUE, $allow_only_one=TRUE)
 
static getActiveLocks ($owner_assetid=NULL, $include_expired=FALSE)
 
static supportsGetActiveLocks ()
 
static changeLockOwner ($old_assetid, $new_assetid)
 
static supportsChangeLockOwner ()
 
static supportsDeletingExpiredLocks ()
 

Static Public Attributes

static $memcache = NULL
 

Additional Inherited Members

- Data Fields inherited from Asset
 $id = 0
 
 $version = ''
 
 $name = ''
 
 $short_name = ''
 
 $status
 
 $languages = ''
 
 $charset = ''
 
 $force_secure = '0'
 
 $created
 
 $created_userid
 
 $updated
 
 $updated_userid
 
 $published
 
 $published_userid
 
 $status_changed
 
 $status_changed_userid
 
 $_is_cacheable = FALSE
 
 $vars = Array()
 
 $_available_keywords = Array()
 
 $data_path_suffix = ''
 
 $data_path = ''
 
 $data_path_public = ''
 
 $_ser_attrs = FALSE
 
- Protected Member Functions inherited from Asset
 _preCreateCheck (Array &$link)
 
 _createAdditional (Array &$link)
 
 _abortCreate ($trigger_level_changed=FALSE, $linkid=0)
 
 _loadVars ()
 
 _getName ($short_name=FALSE, $contextid=NULL)
 
 _getKeywordReplacement ($keyword)
 
 _checkPermissionAccess ($perm, $assetids=Array(), $only_workflow=TRUE)
 
 makeAndSaveInitialWebPath ($path, $parent_link=NULL)
 

Detailed Description

Definition at line 32 of file locking_method_memcache.inc.

Constructor & Destructor Documentation

__construct (   $assetid = 0)

Constructor

This doesn't really matter in this case, as it will only be called statically.

Parameters
string$assetidThe ID of the asset to load

Definition at line 48 of file locking_method_memcache.inc.

Member Function Documentation

static _initMemcache ( )
static

Initialise the memcache object with data from the memcache.inc file

TODO: allow us to specify separate servers for cache managing than that for locking.

Definition at line 62 of file locking_method_memcache.inc.

static acquireLock (   $lockid,
  $source_lockid = '',
  $expires = 0 
)
static

Acquire a lock on part of the system

The $source_lockid parameter should be set if an asset is being locked as a result of a dependant parent being locked. If the source lock is released, this lock will be too. If this lock is not dependent on any other, use blank.

Setting $expires to zero (or omitted) will result in the default lock length being used (as defined as SQ_CONF_LOCK_LENGTH in the System Configuration file).

If $expires is NULL, there will be no expiry time set on the lock. It will remain locked until unlocked by the user.

Otherwise, $expires should be a UNIX timestamp of the expiry time. (ie. it is not a lock length.)

The locking method should throw an exception if there is a problem.

Parameters
string$lockidThe ID of the lock to acquire
string$source_lockidThe ID that triggered the lock acquisition
int$expiresTimestamp of the expiry time
Returns
boolean

Definition at line 115 of file locking_method_memcache.inc.

static failureCallback (   $hostname,
  $port 
)
static

Failure Callback function for Memcache::addServer

Parameters
$hostname
$port
Returns
void public

Definition at line 408 of file locking_method_memcache.inc.

static getLockInfo (   $lockid,
  $full_chain = FALSE,
  $check_expires = TRUE,
  $allow_only_one = TRUE 
)
static

Returns an array of information about the passed lock

If $full_chain is TRUE, all locks with the same source lock ID as that of $lockid will be returned (this could return locks from both parents and children if this is in the middle of a full chain).

The $check_expires variable is unused in this method. Memcache is responsible for releasing expired lock data, so it's hard to still return expired locks.

Parameters
string | array$lockidThe id of the lock to get info for
boolean$full_chainTRUE = Return the full lock chain
boolean$check_expiresTRUE = Clean up expired locks found
boolean$allow_only_oneTRUE = Force only one lock returned
Returns
array public

Definition at line 308 of file locking_method_memcache.inc.

static releaseLock (   $lockid)
static

Release a lock

All locks that share the same source lock ID as $lockid will be released, to ensure that dependant groups of assets (for which the source lock is primarily used for) are locked and unlocked in one group.

Parameters
string$lockidThe ID of the lock to release
See Also
Locking_Method::acquireLock()
Returns
boolean

Definition at line 266 of file locking_method_memcache.inc.

static supportsChangeLockOwner ( )
static

Does this locking method support the changing of lock ownership?

We could change the owner of a single lock, but not a sweeping change from one owner to another, which is what changeLockOwner() is about.

Returns
boolean

Definition at line 378 of file locking_method_memcache.inc.

static supportsDeletingExpiredLocks ( )
static

Does this locking method support deleting expired locks?

Memcache has no way to do this unfortunately.

Returns
boolean

Definition at line 392 of file locking_method_memcache.inc.

static supportsGetActiveLocks ( )
static

Does this locking method support the getting of active locks?

(No, rather unfortunately. :-/)

Returns
boolean

Definition at line 363 of file locking_method_memcache.inc.

static updateLock (   $lockid,
  $expires 
)
static

Update the expiry time on a lock

The expiry time will be updated on all locks that share the same source lock ID as $lockid. The $expires parameter follows the same rules as acquireLock().

If a lock is set to indefinite (NULL), this function will not change this, but will still return TRUE. You must release an indefinite lock before setting a definite expiry date on it.

The locking method should throw an exception if there is a problem with updating the lock expiry.

Parameters
string$lockidThe ID of the lock to update
int$expiresTimestamp of the expiry time
See Also
Locking_Method::acquireLock()
Returns
boolean

Definition at line 203 of file locking_method_memcache.inc.


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