Version 1
[yaffs-website] / web / modules / contrib / memcache / src / Lock / MemcacheLockFactory.php
1 <?php
2
3 /**
4  * @file
5  * Contains \Drupal\memcache\Lock\MemcacheLockFactory.
6  */
7
8 namespace Drupal\memcache\Lock;
9
10 use Drupal\memcache\DrupalMemcacheFactory;
11
12 /**
13  * THe memcache lock factory.
14  */
15 class MemcacheLockFactory {
16
17   /**
18    * The bin name for this lock.
19    *
20    * @var string
21    */
22   protected $bin = 'semaphore';
23
24   /**
25    * The memcache factory.
26    *
27    * @var \Drupal\memcache\DrupalMemcacheFactory
28    */
29   protected $factory;
30
31   /**
32    * Constructs a new MemcacheLockBackend.
33    *
34    * @param \Drupal\memcache\DrupalMemcacheFactory $memcache_factory
35    */
36   public function __construct(DrupalMemcacheFactory $memcache_factory) {
37     $this->factory = $memcache_factory;
38   }
39
40   /**
41    * Gets a lock backend instance.
42    *
43    * @return \Drupal\Core\Lock\LockBackendInterface
44    */
45   public function get() {
46     return new MemcacheLockBackend($this->bin, $this->factory->get($this->bin));
47   }
48
49   /**
50    * Gets a persistent lock backend instance.
51    *
52    * @return \Drupal\Core\Lock\LockBackendInterface
53    */
54   public function getPersistent() {
55     return new PersistentMemcacheLockBackend($this->bin, $this->factory->get($this->bin));
56   }
57
58 }