memcache-8.x-2.2/src/Invalidator/MemcacheTimestampInvalidator.php
src/Invalidator/MemcacheTimestampInvalidator.php
<?php
namespace Drupal\memcache\Invalidator;
use Drupal\memcache\Driver\MemcacheDriverFactory;
/**
* Defines the memcache timestamp invalidator.
*/
class MemcacheTimestampInvalidator extends TimestampInvalidatorBase {
/**
* A Memcache object.
*
* @var \Drupal\memcache\DrupalMemcacheInterface
*/
protected $memcache;
/**
* MemcacheTimestampInvalidator constructor.
*
* @param \Drupal\memcache\Driver\MemcacheDriverFactory $memcache_factory
* Factory class for creation of Memcache objects.
* @param string $bin
* Memcache bin to store the timestamps in.
* @param float $tolerance
* Allowed clock skew between servers, in decimal seconds.
*/
public function __construct(MemcacheDriverFactory $memcache_factory, $bin, $tolerance = 0.001) {
parent::__construct($tolerance);
$this->memcache = $memcache_factory->get($bin);
}
/**
* {@inheritdoc}
*/
public function invalidateTimestamp($tag) {
return $this->markAsOutdated($tag);
}
/**
* {@inheritdoc}
*/
public function getLastInvalidationTimestamp($tag) {
return $this->memcache->get($tag);
}
/**
* {@inheritdoc}
*/
public function getLastInvalidationTimestamps(array $tags) {
return $this->memcache->getMulti($tags);
}
/**
* {@inheritdoc}
*/
protected function writeTimestamp($tag, $timestamp) {
return $this->memcache->set($tag, $timestamp);
}
}
