You are here

class DatabaseLockBackend in Drupal 8

Same name in this branch
  1. 8 core/lib/Drupal/Core/Lock/DatabaseLockBackend.php \Drupal\Core\Lock\DatabaseLockBackend
  2. 8 core/lib/Drupal/Core/ProxyClass/Lock/DatabaseLockBackend.php \Drupal\Core\ProxyClass\Lock\DatabaseLockBackend
Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/ProxyClass/Lock/DatabaseLockBackend.php \Drupal\Core\ProxyClass\Lock\DatabaseLockBackend

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

Hierarchy

Expanded class hierarchy of DatabaseLockBackend

See also

\Drupal\Component\ProxyBuilder

File

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

Namespace

Drupal\Core\ProxyClass\Lock
View source
class DatabaseLockBackend 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\DatabaseLockBackend
   */
  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) {
    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

Namesort descending Modifiers Type Description Overrides
DatabaseLockBackend::$container protected property The service container.
DatabaseLockBackend::$drupalProxyOriginalServiceId protected property The id of the original proxied service.
DatabaseLockBackend::$service protected property The real proxied service, after it was lazy loaded.
DatabaseLockBackend::acquire public function Acquires a lock. Overrides LockBackendInterface::acquire
DatabaseLockBackend::getLockId public function Gets the unique page token for locks. Overrides LockBackendInterface::getLockId
DatabaseLockBackend::lazyLoadItself protected function Lazy loads the real service from the container.
DatabaseLockBackend::lockMayBeAvailable public function Checks if a lock is available for acquiring. Overrides LockBackendInterface::lockMayBeAvailable
DatabaseLockBackend::release public function Releases the given lock. Overrides LockBackendInterface::release
DatabaseLockBackend::releaseAll public function Releases all locks for the given lock token identifier. Overrides LockBackendInterface::releaseAll
DatabaseLockBackend::schemaDefinition public function
DatabaseLockBackend::wait public function Waits a short amount of time before a second lock acquire attempt. Overrides LockBackendInterface::wait
DatabaseLockBackend::__construct public function Constructs a ProxyClass Drupal proxy object.
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2