Blame view
sources/lib/private/files/cache/storage.php
2.54 KB
|
31b7f2792
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
<?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\Files\Cache;
/**
* Class Storage
*
* cache storage specific data
*
* @package OC\Files\Cache
*/
class Storage {
private $storageId;
private $numericId;
/**
* @param \OC\Files\Storage\Storage|string $storage
*/
public function __construct($storage) {
if ($storage instanceof \OC\Files\Storage\Storage) {
$this->storageId = $storage->getId();
} else {
$this->storageId = $storage;
}
if (strlen($this->storageId) > 64) {
$this->storageId = md5($this->storageId);
}
$sql = 'SELECT `numeric_id` FROM `*PREFIX*storages` WHERE `id` = ?';
$result = \OC_DB::executeAudited($sql, array($this->storageId));
if ($row = $result->fetchRow()) {
$this->numericId = $row['numeric_id'];
} else {
$sql = 'INSERT INTO `*PREFIX*storages` (`id`) VALUES(?)';
\OC_DB::executeAudited($sql, array($this->storageId));
$this->numericId = \OC_DB::insertid('*PREFIX*storages');
}
}
|
|
6d9380f96
|
45 46 47 |
/** * @return string */ |
|
31b7f2792
|
48 49 50 |
public function getNumericId() {
return $this->numericId;
}
|
|
6d9380f96
|
51 52 53 |
/** * @return string|null */ |
|
31b7f2792
|
54 55 56 57 58 59 60 61 62 63 |
public static function getStorageId($numericId) {
$sql = 'SELECT `id` FROM `*PREFIX*storages` WHERE `numeric_id` = ?';
$result = \OC_DB::executeAudited($sql, array($numericId));
if ($row = $result->fetchRow()) {
return $row['id'];
} else {
return null;
}
}
|
|
6d9380f96
|
64 65 66 67 |
/**
* @return string|null
*/
public static function getNumericStorageId($storageId) {
|
|
31b7f2792
|
68 69 70 |
if (strlen($storageId) > 64) {
$storageId = md5($storageId);
}
|
|
6d9380f96
|
71 |
|
|
31b7f2792
|
72 73 74 |
$sql = 'SELECT `numeric_id` FROM `*PREFIX*storages` WHERE `id` = ?';
$result = \OC_DB::executeAudited($sql, array($storageId));
if ($row = $result->fetchRow()) {
|
|
6d9380f96
|
75 |
return $row['numeric_id']; |
|
31b7f2792
|
76 |
} else {
|
|
6d9380f96
|
77 |
return null; |
|
31b7f2792
|
78 79 |
} } |
|
a293d369c
|
80 81 |
/** |
|
6d9380f96
|
82 83 84 85 86 87 88 89 |
* @param string $storageId
* @return bool
*/
public static function exists($storageId) {
return !is_null(self::getNumericStorageId($storageId));
}
/**
|
|
a293d369c
|
90 91 92 93 94 |
* remove the entry for the storage
*
* @param string $storageId
*/
public static function remove($storageId) {
|
|
a293d369c
|
95 96 97 98 99 |
if (strlen($storageId) > 64) {
$storageId = md5($storageId);
}
$sql = 'DELETE FROM `*PREFIX*storages` WHERE `id` = ?';
\OC_DB::executeAudited($sql, array($storageId));
|
|
6d9380f96
|
100 101 102 103 104 |
$numericId = self::getNumericStorageId($storageId);
if (!is_null($numericId)) {
$sql = 'DELETE FROM `*PREFIX*filecache` WHERE `storage` = ?';
\OC_DB::executeAudited($sql, array($numericId));
}
|
|
a293d369c
|
105 |
} |
|
31b7f2792
|
106 |
} |