From e76e4e75407cc672bf342f13bbd77392a93c1623 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 29 Feb 2012 23:42:40 +0100 Subject: [PATCH] add touch() to all storage backands, and make parameter optional --- apps/files_sharing/sharedstorage.php | 8 +++++++- lib/filestorage.php | 1 + lib/filestorage/common.php | 1 + lib/filestorage/commontest.php | 3 +++ lib/filestorage/local.php | 11 ++++++++--- lib/filesystem.php | 2 +- lib/filesystemview.php | 2 +- 7 files changed, 22 insertions(+), 6 deletions(-) diff --git a/apps/files_sharing/sharedstorage.php b/apps/files_sharing/sharedstorage.php index 3067d4d34c..845659588e 100644 --- a/apps/files_sharing/sharedstorage.php +++ b/apps/files_sharing/sharedstorage.php @@ -505,7 +505,13 @@ class OC_Filestorage_Shared extends OC_Filestorage { return $storage->getLocalFile($this->getInternalPath($source)); } } - + public function touch($path, $mtime=null){ + $source = $this->getSource($path); + if ($source) { + $storage = OC_Filesystem::getStorage($source); + return $storage->touch($this->getInternalPath($source),$time); + } + } } ?> diff --git a/lib/filestorage.php b/lib/filestorage.php index 6b679eab89..fd6497b947 100644 --- a/lib/filestorage.php +++ b/lib/filestorage.php @@ -48,5 +48,6 @@ abstract class OC_Filestorage{ abstract public function hash($type,$path,$raw); abstract public function free_space($path); abstract public function search($query); + abstract public function touch($path, $mtime=null); abstract public function getLocalFile($path);// get a path to a local version of the file, whether the original file is local or remote } diff --git a/lib/filestorage/common.php b/lib/filestorage/common.php index 40a9cff5d0..fa14d7e99f 100644 --- a/lib/filestorage/common.php +++ b/lib/filestorage/common.php @@ -121,4 +121,5 @@ abstract class OC_Filestorage_Common extends OC_Filestorage { $count=OC_Helper::streamCopy($source,$target); return $tmpFile; } +// abstract public function touch($path, $mtime=null); } diff --git a/lib/filestorage/commontest.php b/lib/filestorage/commontest.php index dd552c6865..512e7c1b66 100644 --- a/lib/filestorage/commontest.php +++ b/lib/filestorage/commontest.php @@ -72,4 +72,7 @@ class OC_Filestorage_CommonTest extends OC_Filestorage_Common{ public function search($query){ return $this->storage->search($query); } + public function touch($path, $mtime=null){ + return $this->storage->touch($path,$mtime); + } } \ No newline at end of file diff --git a/lib/filestorage/local.php b/lib/filestorage/local.php index 8acfe504cb..8e07ce6025 100644 --- a/lib/filestorage/local.php +++ b/lib/filestorage/local.php @@ -58,15 +58,20 @@ class OC_Filestorage_Local extends OC_Filestorage{ public function filemtime($path){ return filemtime($this->datadir.$path); } - public function touch($path, $mtime){ + public function touch($path, $mtime=null){ // sets the modification time of the file to the given value. // If mtime is nil the current time is set. // note that the access time of the file always changes to the current time. - if( touch( $this->datadir.$path, $mtime ) ) { + if(!is_null($mtime)){ + $result=touch( $this->datadir.$path, $mtime ); + }else{ + $result=touch( $this->datadir.$path); + } + if( $result ) { clearstatcache( true, $this->datadir.$path ); } - return touch($this->datadir.$path, $mtime); + return $result; } public function file_get_contents($path){ return file_get_contents($this->datadir.$path); diff --git a/lib/filesystem.php b/lib/filesystem.php index 90195bc213..5013b3968c 100644 --- a/lib/filesystem.php +++ b/lib/filesystem.php @@ -345,7 +345,7 @@ class OC_Filesystem{ static public function filemtime($path){ return self::$defaultInstance->filemtime($path); } - static public function touch($path, $mtime){ + static public function touch($path, $mtime=null){ return self::$defaultInstance->touch($path, $mtime); } static public function file_get_contents($path){ diff --git a/lib/filesystemview.php b/lib/filesystemview.php index 5996a5f60f..2d54a676c8 100644 --- a/lib/filesystemview.php +++ b/lib/filesystemview.php @@ -163,7 +163,7 @@ class OC_FilesystemView { public function filemtime($path){ return $this->basicOperation('filemtime',$path); } - public function touch($path, $mtime){ + public function touch($path, $mtime=null){ return $this->basicOperation('touch', $path, array('write'), $mtime); } public function file_get_contents($path){