Moodle APIs  3.8
Moodle 3.8.6 (Build: 20201109)
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
core\lock\file_lock_factory Class Reference
Inheritance diagram for core\lock\file_lock_factory:
core\lock\lock_factory

Public Member Functions

 __construct ($type)
 Create this lock factory. More...
 
 extend_lock (lock $lock, $maxlifetime=86400)
 Extend a lock that was previously obtained with @lock. More...
 
 get_lock ($resource, $timeout, $maxlifetime=86400)
 Get a lock within the specified timeout or return false. More...
 
 is_available ()
 Is available. More...
 
 release_lock (lock $lock)
 Release a lock that was previously obtained with @lock. More...
 
 supports_auto_release ()
 This lock type will be automatically released when a process ends. More...
 
 supports_recursion ()
 Multiple locks for the same resource cannot be held from a single process. More...
 
 supports_timeout ()
 Return information about the blocking behaviour of the lock type on this platform. More...
 

Protected Member Functions

 get_debug_info ()
 Get some info that might be useful for debugging. More...
 

Protected Attributes

string $lockdirectory
 $lockdirectory - Full system path to the directory used to store file locks.
 
string $type
 $type - The type of lock, e.g. More...
 
boolean $verbose
 $verbose - If true, debugging info about the owner of the lock will be written to the lock file.
 

Constructor & Destructor Documentation

◆ __construct()

core\lock\file_lock_factory::__construct (   $type)

Create this lock factory.

Parameters
string$type- The type, e.g. cron, cache, session

Implements core\lock\lock_factory.

Member Function Documentation

◆ extend_lock()

core\lock\file_lock_factory::extend_lock ( lock  $lock,
  $maxlifetime = 86400 
)

Extend a lock that was previously obtained with @lock.

Parameters
lock$lock- not used
int$maxlifetime- not used
Return values
boolean- true if the lock was extended.

Implements core\lock\lock_factory.

◆ get_debug_info()

core\lock\file_lock_factory::get_debug_info ( )
protected

Get some info that might be useful for debugging.

Return values
boolean- string

◆ get_lock()

core\lock\file_lock_factory::get_lock (   $resource,
  $timeout,
  $maxlifetime = 86400 
)

Get a lock within the specified timeout or return false.

Parameters
string$resource- The identifier for the lock. Should use frankenstyle prefix.
int$timeout- The number of seconds to wait for a lock before giving up.
int$maxlifetime- Unused by this lock type.
Return values
boolean- true if a lock was obtained.

Implements core\lock\lock_factory.

◆ is_available()

core\lock\file_lock_factory::is_available ( )

Is available.

Return values
boolean- True if preventfilelocking is not set - or the file_lock_root is not in dataroot.

Implements core\lock\lock_factory.

◆ release_lock()

core\lock\file_lock_factory::release_lock ( lock  $lock)

Release a lock that was previously obtained with @lock.

Parameters
lock$lock- A lock obtained from this factory.
Return values
boolean- true if the lock is no longer held (including if it was never held).

Implements core\lock\lock_factory.

◆ supports_auto_release()

core\lock\file_lock_factory::supports_auto_release ( )

This lock type will be automatically released when a process ends.

Return values
boolean- True

Implements core\lock\lock_factory.

◆ supports_recursion()

core\lock\file_lock_factory::supports_recursion ( )

Multiple locks for the same resource cannot be held from a single process.

Return values
boolean- False

Implements core\lock\lock_factory.

◆ supports_timeout()

core\lock\file_lock_factory::supports_timeout ( )

Return information about the blocking behaviour of the lock type on this platform.

Return values
boolean- False if attempting to get a lock will block indefinitely.

Implements core\lock\lock_factory.

Member Data Documentation

◆ $type

string core\lock\file_lock_factory::$type
protected

$type - The type of lock, e.g.

cache, cron, session.


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