From 50abd557184326f173357b50e7593dc3f452be91 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Sat, 25 May 2013 15:37:46 +0200 Subject: Added shared (cross-user) cache --- program/lib/Roundcube/rcube.php | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'program/lib/Roundcube/rcube.php') diff --git a/program/lib/Roundcube/rcube.php b/program/lib/Roundcube/rcube.php index eea2fde84..a57cad57e 100644 --- a/program/lib/Roundcube/rcube.php +++ b/program/lib/Roundcube/rcube.php @@ -257,6 +257,37 @@ class rcube } + /** + * Initialize and get shared cache object + * + * @param string $name Cache identifier + * @param bool $packed Enables/disables data serialization + * + * @return rcube_cache_shared Cache object + */ + public function get_cache_shared($name, $packed=true) + { + $shared_name = "shared_$name"; + + if (!isset($this->caches[$shared_name])) { + $opt = strtolower($name) . '_cache'; + $type = $this->config->get($opt); + $ttl = $this->config->get($opt . '_ttl'); + + if (!$type) { + $type = $this->config->get('shared_cache'); + } + if ($ttl === null) { + $ttl = $this->config->get('shared_cache_ttl'); + } + + $this->caches[$shared_name] = new rcube_cache_shared($type, $name, $ttl, $packed); + } + + return $this->caches[$shared_name]; + } + + /** * Create SMTP object and connect to server * -- cgit v1.2.3