returning the number of stored bytes in store() and adding cleanup() method

This commit is contained in:
Thomas Müller 2013-09-16 10:47:29 +02:00
parent 0fb719dffe
commit 16ef5a8b35
1 changed files with 22 additions and 1 deletions

View File

@ -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];