diff options
author | Michael Gapczynski <mtgap@owncloud.com> | 2013-06-04 18:19:08 -0400 |
---|---|---|
committer | Michael Gapczynski <mtgap@owncloud.com> | 2013-06-04 18:19:08 -0400 |
commit | cb9fe475c4481993d2c95b040f7abb653f0971e7 (patch) | |
tree | 874e56e888745676fe815c3c8f75e2741ce275af /lib/files/cache/storage.php | |
parent | 9ead7c4776bd512c2a50ab917b99dcdc37e8db68 (diff) | |
parent | c59ee99d932eb9a5d7df8fdfb6c318abfdef88b7 (diff) | |
download | nextcloud-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.php | 59 |
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; + } + } +} |