\Horde_Lock

The Horde_Lock class provides an API to create, store, check and expire locks based on a given resource URI.

Copyright 2008-2017 Horde LLC (http://www.horde.org/)

See the enclosed file LICENSE for license information (LGPL). If you did not receive this file, see http://www.horde.org/licenses/lgpl21.

Summary

Methods
Properties
Constants
__construct()
getLockInfo()
getLocks()
resetLock()
setLock()
clearLock()
No public properties found
TYPE_EXCLUSIVE
TYPE_SHARED
PERMANENT
No protected methods found
$_params
$_logger
N/A
No private methods found
No private properties found
N/A

Constants

TYPE_EXCLUSIVE

TYPE_EXCLUSIVE

TYPE_SHARED

TYPE_SHARED

PERMANENT

PERMANENT

Properties

$_params

$_params : array

Driver parameters.

Type

array

$_logger

$_logger : \Horde_Log_Logger

Logger.

Type

\Horde_Log_Logger

Methods

__construct()

__construct(array  $params = array()) 

Constructor.

Parameters

array $params

Configuration parameters:

'logger' - (Horde_Log_Logger) A logger instance.

getLockInfo()

getLockInfo(string  $lockid) : array

Return an array of information about the requested lock.

Parameters

string $lockid

Lock ID to look up.

Throws

\Horde_Lock_Exception

Returns

array —

Lock information.

getLocks()

getLocks(string  $scope = null, string  $principal = null, integer  $type = null) : array

Return a list of valid locks with the option to limit the results by principal, scope and/or type.

Parameters

string $scope

The scope of the lock. Typically the name of the application requesting the lock or some other identifier used to group locks together.

string $principal

Principal for which to check for locks

integer $type

Only return locks of the given type. Defaults to null, or all locks

Throws

\Horde_Lock_Exception

Returns

array —

Array 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.

resetLock()

resetLock(string  $lockid, integer  $extend) : boolean

Extend the valid lifetime of a valid lock to now + $extend.

Parameters

string $lockid

Lock ID to reset. Must be a valid, non-expired lock.

integer $extend

Extend lock this many seconds from now.

Throws

\Horde_Lock_Exception

Returns

boolean —

Returns true on success.

setLock()

setLock(string  $requestor, string  $scope, string  $principal, integer  $lifetime = 1,   $exclusive = \Horde_Lock::TYPE_SHARED) : mixed

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

string $requestor

User ID of the lock requestor.

string $scope

The scope of the lock. Typically the name of the application requesting the lock or some other identifier used to group locks together.

string $principal

A principal on which a lock should be granted. The format can be any string but is suggested to be in URI form.

integer $lifetime

Time (in seconds) for which the lock will be considered valid.

$exclusive

Throws

\Horde_Lock_Exception

Returns

mixed —

A string lock ID.

clearLock()

clearLock(string  $lockid) : boolean

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

string $lockid

The lock ID as generated by a previous call to setLock()

Throws

\Horde_Lock_Exception

Returns

boolean —

Returns true on success.