Class Horde_Lock
The Horde_Lock class provides an API to create, store, check and expire locks
based on a given resource URI.
Copyright 2008-2012 Horde LLC (http://www.horde.org/)
See the enclosed file COPYING for license information (LGPL). If you did
not receive this file, see http://www.horde.org/licenses/lgpl21.
Methods summary
public
|
#
__construct( array $params = array() )
Constructor.
Parameters
- $params
- Configuration parameters:
<span class="php-quote">'logger'</span> - (Horde_Log_Logger) A logger instance.
|
abstract public
array
|
#
getLockInfo( string $lockid )
Return an array of information about the requested lock.
Return an array of information about the requested lock.
Parameters
- $lockid
- Lock ID to look up.
Returns
array Lock information.
Throws
|
abstract public
array
|
#
getLocks( string $scope = null, string $principal = null, integer $type = null )
Return a list of valid locks with the option to limit the results
by principal, scope and/or type.
Return a list of valid locks with the option to limit the results
by principal, scope and/or type.
Parameters
- $scope
- <p>The scope of the lock. Typically the name of
the application requesting the lock or some
other identifier used to group locks together.</p>
- $principal
- Principal for which to check for locks
- $type
- <p>Only return locks of the given type.
Defaults to null, or all locks</p>
Returns
arrayArray of locks with the ID as the key and the lock details
as the value. If there are no current locks this will
return an empty array.
Throws
|
abstract public
boolean
|
#
resetLock( string $lockid, integer $extend )
Extend the valid lifetime of a valid lock to now + $extend.
Extend the valid lifetime of a valid lock to now + $extend.
Parameters
- $lockid
- <p>Lock ID to reset. Must be a valid, non-expired
lock.</p>
- $extend
- Extend lock this many seconds from now.
Returns
boolean Returns true on success.
Throws
|
abstract public
mixed
|
#
setLock( string $requestor, string $scope, string $principal, integer $lifetime = 1, string $exclusive = Horde_Lock::TYPE_SHARED )
Sets a lock on the requested principal and returns the generated lock
ID. NOTE: No security checks are done in the Horde_Lock API. It is
expected that the calling application has done all necessary security
checks before requesting a lock be granted.
Sets a lock on the requested principal and returns the generated lock
ID. NOTE: No security checks are done in the Horde_Lock API. It is
expected that the calling application has done all necessary security
checks before requesting a lock be granted.
Parameters
- $requestor
- User ID of the lock requestor.
- $scope
- <p>The scope of the lock. Typically the name of
the application requesting the lock or some
other identifier used to group locks
together.</p>
- $principal
- <p>A principal on which a lock should be
granted. The format can be any string but is
suggested to be in URI form.</p>
- $lifetime
- <p>Time (in seconds) for which the lock will be
considered valid.</p>
- $exclusive
- <p>One of Horde_Lock::TYPE_SHARED or
Horde_Lock::TYPE_EXCLUSIVE.
- An exclusive lock will be enforced strictly
and must be interpreted to mean that the
resource can not be modified. Only one
exclusive lock per principal is allowed.
- A shared lock is one that notifies other
potential lock requestors that the resource
is in use. This lock can be overridden
(cleared or replaced with a subsequent
call to setLock()) by other users. Multiple
users may request (and will be granted) a
shared lock on a given principal. All locks
will be considered valid until they are
cleared or expire.</p>
Returns
mixed A string lock ID.
Throws
|
abstract public
boolean
|
#
clearLock( string $lockid )
Removes a lock given the lock ID.
NOTE: No security checks are done in the Horde_Lock API. It is
expected that the calling application has done all necessary security
checks before requesting a lock be cleared.
Removes a lock given the lock ID.
NOTE: No security checks are done in the Horde_Lock API. It is
expected that the calling application has done all necessary security
checks before requesting a lock be cleared.
Parameters
- $lockid
- <p>The lock ID as generated by a previous call
to setLock()</p>
Returns
boolean Returns true on success.
Throws
|