class PersistentDatabaseLockBackend

Same name in this branch
  1. 10 core/lib/Drupal/Core/Lock/PersistentDatabaseLockBackend.php \Drupal\Core\Lock\PersistentDatabaseLockBackend
Same name in other branches
  1. 9 core/lib/Drupal/Core/ProxyClass/Lock/PersistentDatabaseLockBackend.php \Drupal\Core\ProxyClass\Lock\PersistentDatabaseLockBackend
  2. 9 core/lib/Drupal/Core/Lock/PersistentDatabaseLockBackend.php \Drupal\Core\Lock\PersistentDatabaseLockBackend
  3. 8.9.x core/lib/Drupal/Core/ProxyClass/Lock/PersistentDatabaseLockBackend.php \Drupal\Core\ProxyClass\Lock\PersistentDatabaseLockBackend
  4. 8.9.x core/lib/Drupal/Core/Lock/PersistentDatabaseLockBackend.php \Drupal\Core\Lock\PersistentDatabaseLockBackend
  5. 11.x core/lib/Drupal/Core/ProxyClass/Lock/PersistentDatabaseLockBackend.php \Drupal\Core\ProxyClass\Lock\PersistentDatabaseLockBackend
  6. 11.x core/lib/Drupal/Core/Lock/PersistentDatabaseLockBackend.php \Drupal\Core\Lock\PersistentDatabaseLockBackend

Provides a proxy class for \Drupal\Core\Lock\PersistentDatabaseLockBackend.

Hierarchy

Expanded class hierarchy of PersistentDatabaseLockBackend

See also

\Drupal\Component\ProxyBuilder

File

core/lib/Drupal/Core/ProxyClass/Lock/PersistentDatabaseLockBackend.php, line 15

Namespace

Drupal\Core\ProxyClass\Lock
View source
class PersistentDatabaseLockBackend implements \Drupal\Core\Lock\LockBackendInterface {
    use \Drupal\Core\DependencyInjection\DependencySerializationTrait;
    
    /**
     * The id of the original proxied service.
     *
     * @var string
     */
    protected $drupalProxyOriginalServiceId;
    
    /**
     * The real proxied service, after it was lazy loaded.
     *
     * @var \Drupal\Core\Lock\PersistentDatabaseLockBackend
     */
    protected $service;
    
    /**
     * The service container.
     *
     * @var \Symfony\Component\DependencyInjection\ContainerInterface
     */
    protected $container;
    
    /**
     * Constructs a ProxyClass Drupal proxy object.
     *
     * @param \Symfony\Component\DependencyInjection\ContainerInterface $container
     *   The container.
     * @param string $drupal_proxy_original_service_id
     *   The service ID of the original service.
     */
    public function __construct(\Symfony\Component\DependencyInjection\ContainerInterface $container, $drupal_proxy_original_service_id) {
        $this->container = $container;
        $this->drupalProxyOriginalServiceId = $drupal_proxy_original_service_id;
    }
    
    /**
     * Lazy loads the real service from the container.
     *
     * @return object
     *   Returns the constructed real service.
     */
    protected function lazyLoadItself() {
        if (!isset($this->service)) {
            $this->service = $this->container
                ->get($this->drupalProxyOriginalServiceId);
        }
        return $this->service;
    }
    
    /**
     * {@inheritdoc}
     */
    public function acquire($name, $timeout = 30.0) {
        return $this->lazyLoadItself()
            ->acquire($name, $timeout);
    }
    
    /**
     * {@inheritdoc}
     */
    public function lockMayBeAvailable($name) {
        return $this->lazyLoadItself()
            ->lockMayBeAvailable($name);
    }
    
    /**
     * {@inheritdoc}
     */
    public function release($name) {
        return $this->lazyLoadItself()
            ->release($name);
    }
    
    /**
     * {@inheritdoc}
     */
    public function releaseAll($lock_id = NULL) {
        return $this->lazyLoadItself()
            ->releaseAll($lock_id);
    }
    
    /**
     * {@inheritdoc}
     */
    public function schemaDefinition() {
        return $this->lazyLoadItself()
            ->schemaDefinition();
    }
    
    /**
     * {@inheritdoc}
     */
    public function wait($name, $delay = 30) {
        return $this->lazyLoadItself()
            ->wait($name, $delay);
    }
    
    /**
     * {@inheritdoc}
     */
    public function getLockId() {
        return $this->lazyLoadItself()
            ->getLockId();
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
DependencySerializationTrait::$_entityStorages protected property
DependencySerializationTrait::$_serviceIds protected property
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
PersistentDatabaseLockBackend::$container protected property The service container.
PersistentDatabaseLockBackend::$drupalProxyOriginalServiceId protected property The id of the original proxied service.
PersistentDatabaseLockBackend::$service protected property The real proxied service, after it was lazy loaded.
PersistentDatabaseLockBackend::acquire public function Acquires a lock. Overrides LockBackendInterface::acquire
PersistentDatabaseLockBackend::getLockId public function Gets the unique page token for locks. Overrides LockBackendInterface::getLockId
PersistentDatabaseLockBackend::lazyLoadItself protected function Lazy loads the real service from the container.
PersistentDatabaseLockBackend::lockMayBeAvailable public function Checks if a lock is available for acquiring. Overrides LockBackendInterface::lockMayBeAvailable
PersistentDatabaseLockBackend::release public function Releases the given lock. Overrides LockBackendInterface::release
PersistentDatabaseLockBackend::releaseAll public function Releases all locks for the given lock token identifier. Overrides LockBackendInterface::releaseAll
PersistentDatabaseLockBackend::schemaDefinition public function
PersistentDatabaseLockBackend::wait public function Waits a short amount of time before a second lock acquire attempt. Overrides LockBackendInterface::wait
PersistentDatabaseLockBackend::__construct public function Constructs a ProxyClass Drupal proxy object.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.