diff options
author | Robin Appelman <icewind@owncloud.com> | 2013-07-16 15:34:22 +0200 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2013-07-16 15:34:22 +0200 |
commit | d82c1dfcabe84709ff02ea5c13c82c573d524937 (patch) | |
tree | 399064806f71f511d192a94236388bea9f9538f3 /lib/memcache/factory.php | |
parent | 0ae8eb4f5e05d9e3c5a22a7278ee104edd95fdf4 (diff) | |
download | nextcloud-server-d82c1dfcabe84709ff02ea5c13c82c573d524937.tar.gz nextcloud-server-d82c1dfcabe84709ff02ea5c13c82c573d524937.zip |
split out memcache factory from base class
Diffstat (limited to 'lib/memcache/factory.php')
-rw-r--r-- | lib/memcache/factory.php | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/lib/memcache/factory.php b/lib/memcache/factory.php new file mode 100644 index 00000000000..1926582aa5c --- /dev/null +++ b/lib/memcache/factory.php @@ -0,0 +1,38 @@ +<?php +/** + * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Memcache; + +class Factory { + /** + * get a cache instance, will return null if no backend is available + * + * @param bool $global + * @return \OC\Memcache\Cache + */ + function create($global = false) { + if (XCache::isAvailable()) { + return new XCache($global); + } elseif (APC::isAvailable()) { + return new APC($global); + } elseif (Memcached::isAvailable()) { + return new Memcached($global); + } else { + return null; + } + } + + /** + * check if there is a memcache backend available + * + * @return bool + */ + public function isAvailable() { + return XCache::isAvailable() || APC::isAvailable() || Memcached::isAvailable(); + } +} |