From 50abd557184326f173357b50e7593dc3f452be91 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Sat, 25 May 2013 09:37:46 -0400
Subject: [PATCH] Added shared (cross-user) cache

---
 program/lib/Roundcube/rcube.php |   31 +++++++++++++++++++++++++++++++
 1 files changed, 31 insertions(+), 0 deletions(-)

diff --git a/program/lib/Roundcube/rcube.php b/program/lib/Roundcube/rcube.php
index eea2fde..a57cad5 100644
--- a/program/lib/Roundcube/rcube.php
+++ b/program/lib/Roundcube/rcube.php
@@ -258,6 +258,37 @@
 
 
     /**
+     * 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
      *
      * @param boolean True if connection should be established

--
Gitblit v1.9.1