From: Thomas Müller Date: Mon, 16 Sep 2013 08:47:29 +0000 (+0200) Subject: returning the number of stored bytes in store() and adding cleanup() method X-Git-Tag: v6.0.0alpha2~11^2~6 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=16ef5a8b357e623b1f1621c3e52957167e93e46b;p=nextcloud-server.git returning the number of stored bytes in store() and adding cleanup() method --- diff --git a/lib/filechunking.php b/lib/filechunking.php index e6d69273a44..c0e3acbf1aa 100644 --- a/lib/filechunking.php +++ b/lib/filechunking.php @@ -34,10 +34,19 @@ class OC_FileChunking { return $this->cache; } + /** + * Stores the given $data under the given $key - the number of stored bytes is returned + * + * @param $index + * @param $data + * @return int + */ public function store($index, $data) { $cache = $this->getCache(); $name = $this->getPrefix().$index; $cache->set($name, $data); + + return $cache->size($name); } public function isComplete() { @@ -58,12 +67,24 @@ class OC_FileChunking { $count = 0; for($i=0; $i < $this->info['chunkcount']; $i++) { $chunk = $cache->get($prefix.$i); - $cache->remove($prefix.$i); $count += fwrite($f, $chunk); } + + $this->cleanup(); return $count; } + /** + * Removes all chunks which belong to this transmission + */ + public function cleanup() { + $cache = $this->getCache(); + $prefix = $this->getPrefix(); + for($i=0; $i < $this->info['chunkcount']; $i++) { + $cache->remove($prefix.$i); + } + } + public function signature_split($orgfile, $input) { $info = unpack('n', fread($input, 2)); $blocksize = $info[1];