memcache = new Memcache(); $this->memcache->connect($g_caching_memcached_host, $g_caching_memcached_port) or die ('Unable to connect to memcached server at ' . $g_caching_memcached_host . ':' . $g_caching_memcached_port); if ($g_debug) { Debug('memcache version: ' . $this->memcache->getVersion()); } } function GetEngineName() { return 'memcache'; } function IsCached($zone) { return $this->memcache->get($this->getPrefix() . 'soa_' . $zone) !== false; } function GetSOA($zone) { return $this->memcache->get($this->getPrefix() . 'soa_' . $zone); } function CacheZone($zone, $soa, $data) { global $g_caching_memcached_expiry; Debug('Storing zone ' . $zone . " (SOA $soa) to memcache"); if (!$this->memcache->set($this->getPrefix() . 'soa_' . $zone, $soa, $g_caching_memcached_expiry) || !$this->memcache->set($this->getPrefix() . 'data_' . $zone, $data, $g_caching_memcached_expiry)) { die('Unable to store data in memcache: ' . $this->memcache->getResultMessage()); } } function GetData($zone) { return $this->memcache->get($this->getPrefix() . 'data_' . $zone); } function Drop($zone) { $this->memcache->delete($this->getPrefix() . 'data_' . $zone); $this->memcache->delete($this->getPrefix() . 'soa_' . $zone); } private function getPrefix() { global $g_auth_session_name; return $g_auth_session_name . "_"; } }