Updated all the contrib modules to their latest versions.
[yaffs-website] / web / modules / contrib / memcache / src / MemcacheBackendFactory.php
1 <?php
2
3 namespace Drupal\memcache;
4
5 use Drupal\Core\Cache\CacheFactoryInterface;
6 use Drupal\Core\Cache\CacheTagsChecksumInterface;
7 use Drupal\memcache\Driver\MemcacheDriverFactory;
8 use Drupal\memcache\Invalidator\TimestampInvalidatorInterface;
9
10 /**
11  * Class MemcacheBackendFactory.
12  */
13 class MemcacheBackendFactory implements CacheFactoryInterface {
14
15   /**
16    * The memcache factory object.
17    *
18    * @var \Drupal\memcache\Driver\MemcacheDriverFactory
19    */
20   protected $memcacheFactory;
21
22   /**
23    * The cache tags checksum provider.
24    *
25    * @var \Drupal\Core\Cache\CacheTagsChecksumInterface
26    */
27   protected $checksumProvider;
28
29   /**
30    * The timestamp invalidation provider.
31    *
32    * @var \Drupal\memcache\Invalidator\TimestampInvalidatorInterface
33    */
34   protected $timestampInvalidator;
35
36   /**
37    * Constructs the MemcacheBackendFactory object.
38    *
39    * @param \Drupal\memcache\Driver\MemcacheDriverFactory $memcache_factory
40    *   The memcache factory object.
41    * @param \Drupal\Core\Cache\CacheTagsChecksumInterface $checksum_provider
42    *   The cache tags checksum provider.
43    * @param \Drupal\memcache\Invalidator\TimestampInvalidatorInterface $timestamp_invalidator
44    *   The timestamp invalidation provider.
45    */
46   public function __construct(MemcacheDriverFactory $memcache_factory, CacheTagsChecksumInterface $checksum_provider, TimestampInvalidatorInterface $timestamp_invalidator) {
47     $this->memcacheFactory = $memcache_factory;
48     $this->checksumProvider = $checksum_provider;
49     $this->timestampInvalidator = $timestamp_invalidator;
50   }
51
52   /**
53    * Gets MemcacheBackend for the specified cache bin.
54    *
55    * @param string $bin
56    *   The cache bin for which the object is created.
57    *
58    * @return \Drupal\memcache\MemcacheBackend
59    *   The cache backend object for the specified cache bin.
60    */
61   public function get($bin) {
62     return new MemcacheBackend(
63       $bin,
64       $this->memcacheFactory->get($bin),
65       $this->checksumProvider,
66       $this->timestampInvalidator
67     );
68   }
69
70 }