. * * @category Plugin * @package StatusNet * @author Craig Andrews * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ class MemcacheSchemaCache implements Net_LDAP2_SchemaCache { protected $c; protected $cacheKey; /** * Initialize the simple cache * * Config is as following: * memcache memcache instance * cachekey the key in the cache to look at * * @param array $cfg Config array */ public function MemcacheSchemaCache($cfg) { $this->c = $cfg['c']; $this->cacheKey = $cfg['cacheKey']; } /** * Return the schema object from the cache * * @return Net_LDAP2_Schema|Net_LDAP2_Error|false */ public function loadSchema() { return $this->c->get($this->cacheKey); } /** * Store a schema object in the cache * * This method will be called, if Net_LDAP2 has fetched a fresh * schema object from LDAP and wants to init or refresh the cache. * * To invalidate the cache and cause Net_LDAP2 to refresh the cache, * you can call this method with null or false as value. * The next call to $ldap->schema() will then refresh the caches object. * * @param mixed $schema The object that should be cached * @return true|Net_LDAP2_Error|false */ public function storeSchema($schema) { return $this->c->set($this->cacheKey, $schema); } }