aboutsummaryrefslogtreecommitdiffstats
path: root/lib/files/cache/storage.php
diff options
context:
space:
mode:
authorMichael Gapczynski <mtgap@owncloud.com>2013-06-04 18:19:08 -0400
committerMichael Gapczynski <mtgap@owncloud.com>2013-06-04 18:19:08 -0400
commitcb9fe475c4481993d2c95b040f7abb653f0971e7 (patch)
tree874e56e888745676fe815c3c8f75e2741ce275af /lib/files/cache/storage.php
parent9ead7c4776bd512c2a50ab917b99dcdc37e8db68 (diff)
parentc59ee99d932eb9a5d7df8fdfb6c318abfdef88b7 (diff)
downloadnextcloud-server-cb9fe475c4481993d2c95b040f7abb653f0971e7.tar.gz
nextcloud-server-cb9fe475c4481993d2c95b040f7abb653f0971e7.zip
Merge branch 'master' into hook-improvements
Conflicts: lib/files/view.php
Diffstat (limited to 'lib/files/cache/storage.php')
-rw-r--r--lib/files/cache/storage.php59
1 files changed, 59 insertions, 0 deletions
diff --git a/lib/files/cache/storage.php b/lib/files/cache/storage.php
new file mode 100644
index 00000000000..72de376798c
--- /dev/null
+++ b/lib/files/cache/storage.php
@@ -0,0 +1,59 @@
+<?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);
+ }
+
+ $query = \OC_DB::prepare('SELECT `numeric_id` FROM `*PREFIX*storages` WHERE `id` = ?');
+ $result = $query->execute(array($this->storageId));
+ if ($row = $result->fetchRow()) {
+ $this->numericId = $row['numeric_id'];
+ } else {
+ $query = \OC_DB::prepare('INSERT INTO `*PREFIX*storages`(`id`) VALUES(?)');
+ $query->execute(array($this->storageId));
+ $this->numericId = \OC_DB::insertid('*PREFIX*storages');
+ }
+ }
+
+ public function getNumericId() {
+ return $this->numericId;
+ }
+
+ public static function getStorageId($numericId) {
+ $query = \OC_DB::prepare('SELECT `id` FROM `*PREFIX*storages` WHERE `numeric_id` = ?');
+ $result = $query->execute(array($numericId));
+ if ($row = $result->fetchRow()) {
+ return $row['id'];
+ } else {
+ return null;
+ }
+ }
+}