Blame view

sources/lib/private/memcache/factory.php 1.86 KB
31b7f2792   Kload   Upgrade to ownclo...
1
2
3
4
5
6
7
8
9
  <?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;
6d9380f96   Cédric Dupont   Update sources OC...
10
11
12
13
14
15
16
17
18
19
20
21
22
23
  use \OCP\ICacheFactory;
  
  class Factory implements ICacheFactory {
  	/**
  	 * @var string $globalPrefix
  	 */
  	private $globalPrefix;
  
  	/**
  	 * @param string $globalPrefix
  	 */
  	public function __construct($globalPrefix) {
  		$this->globalPrefix = $globalPrefix;
  	}
31b7f2792   Kload   Upgrade to ownclo...
24
25
26
27
28
29
30
  	/**
  	 * get a cache instance, will return null if no backend is available
  	 *
  	 * @param string $prefix
  	 * @return \OC\Memcache\Cache
  	 */
  	function create($prefix = '') {
6d9380f96   Cédric Dupont   Update sources OC...
31
  		$prefix = $this->globalPrefix . '/' . $prefix;
31b7f2792   Kload   Upgrade to ownclo...
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
  		if (XCache::isAvailable()) {
  			return new XCache($prefix);
  		} elseif (APCu::isAvailable()) {
  			return new APCu($prefix);
  		} elseif (APC::isAvailable()) {
  			return new APC($prefix);
  		} elseif (Memcached::isAvailable()) {
  			return new Memcached($prefix);
  		} else {
  			return null;
  		}
  	}
  
  	/**
  	 * check if there is a memcache backend available
  	 *
  	 * @return bool
  	 */
  	public function isAvailable() {
  		return XCache::isAvailable() || APCu::isAvailable() || APC::isAvailable() || Memcached::isAvailable();
  	}
  
  	/**
  	 * get a in-server cache instance, will return null if no backend is available
  	 *
  	 * @param string $prefix
6d9380f96   Cédric Dupont   Update sources OC...
58
  	 * @return null|Cache
31b7f2792   Kload   Upgrade to ownclo...
59
  	 */
f7d878ff1   kload   [enh] Update to 7...
60
61
  	public function createLowLatency($prefix = '') {
  		$prefix = $this->globalPrefix . '/' . $prefix;
31b7f2792   Kload   Upgrade to ownclo...
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
  		if (XCache::isAvailable()) {
  			return new XCache($prefix);
  		} elseif (APCu::isAvailable()) {
  			return new APCu($prefix);
  		} elseif (APC::isAvailable()) {
  			return new APC($prefix);
  		} else {
  			return null;
  		}
  	}
  
  	/**
  	 * check if there is a in-server backend available
  	 *
  	 * @return bool
  	 */
f7d878ff1   kload   [enh] Update to 7...
78
  	public function isAvailableLowLatency() {
31b7f2792   Kload   Upgrade to ownclo...
79
80
81
82
83
  		return XCache::isAvailable() || APCu::isAvailable() || APC::isAvailable();
  	}
  
  
  }