\Horde_Lock_Mongo

Lock storage in a MongoDB database.

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()
__destruct()
gc()
No public properties found
TYPE_EXCLUSIVE
TYPE_SHARED
PERMANENT
EXPIRY_TS
LID
ORIGIN_TS
OWNER
PRINCIPAL
SCOPE
TYPE
UPDATE_TS
_mapFields()
$_params
$_logger
$_db
$_map
N/A
No private methods found
No private properties found
N/A

Constants

TYPE_EXCLUSIVE

TYPE_EXCLUSIVE

TYPE_SHARED

TYPE_SHARED

PERMANENT

PERMANENT

EXPIRY_TS

EXPIRY_TS

LID

LID

ORIGIN_TS

ORIGIN_TS

OWNER

OWNER

PRINCIPAL

PRINCIPAL

SCOPE

SCOPE

TYPE

TYPE

UPDATE_TS

UPDATE_TS

Properties

$_params

$_params : array

Driver parameters.

Type

array

$_logger

$_logger : \Horde_Log_Logger

Logger.

Type

\Horde_Log_Logger

$_db

$_db : \MongoCollection

The MongoDB Collection object for the cache data.

Type

\MongoCollection

$_map

$_map : array

Ugly hack: lock driver written with assumption that it returns data as defined by SQL columns. So need to do mapping in this driver.

Type

array

Methods

__construct()

__construct(array  $params = array()) 

Constructor.

Parameters

array $params

Parameters:

  - collection: (string) The collection name.
  - mongo_db: [REQUIRED] (Horde_Mongo_Client) A MongoDB client object.

getLockInfo()

getLockInfo(string  $lockid) : array

Return an array of information about the requested lock.

Parameters

string $lockid

Lock ID to look up.

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

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,   $lifetime) : 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.

$lifetime

Returns

boolean —

Returns true on success.

setLock()

setLock(string  $requestor, string  $scope, string  $principal, integer  $lifetime = 1,   $type = \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.

$type

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()

Returns

boolean —

Returns true on success.

__destruct()

__destruct() 

Destructor.

gc()

gc() 

Do garbage collection needed for the driver.

_mapFields()

_mapFields(  $res) : array

Map return to SQL fields.

Parameters

$res

Returns

array