aboutsummaryrefslogtreecommitdiffstats
path: root/lib/files/cache/storage.php
diff options
context:
space:
mode:
authoricewind1991 <icewind1991@gmail.com>2013-04-26 06:55:21 -0700
committericewind1991 <icewind1991@gmail.com>2013-04-26 06:55:21 -0700
commit5474fea1f657b95f4007af6ef673862273f18e1c (patch)
treee4a86a03e66ead867df83b0f4267b936a2edeaec /lib/files/cache/storage.php
parentd825669265f0296b4981a99e31a78fb514ac1146 (diff)
parent809b5f81f6ee448563462ae8f642fbb8a6a11499 (diff)
downloadnextcloud-server-5474fea1f657b95f4007af6ef673862273f18e1c.tar.gz
nextcloud-server-5474fea1f657b95f4007af6ef673862273f18e1c.zip
Merge pull request #3136 from owncloud/mount-cleanup
Separation of mount management
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;
+ }
+ }
+}