From: Roland Haeder Date: Wed, 21 May 2014 19:35:49 +0000 (+0200) Subject: InputOutputPointer is the right interface. X-Git-Url: https://git.mxchange.org/?p=core.git;a=commitdiff_plain;h=6b19898fa5c1cc332e83100ea41f55073ec20a8a;hp=f2e5c734f1b1397a95d517094152da14b136b5a1 InputOutputPointer is the right interface. Signed-off-by: Roland Häder --- diff --git a/inc/classes/interfaces/io/pointer/io/class_InputOutputPointer.php b/inc/classes/interfaces/io/pointer/io/class_InputOutputPointer.php index 6dc483a3..8daa22c7 100644 --- a/inc/classes/interfaces/io/pointer/io/class_InputOutputPointer.php +++ b/inc/classes/interfaces/io/pointer/io/class_InputOutputPointer.php @@ -28,15 +28,6 @@ interface InputOutputPointer extends InputPointer, OutputPointer { * @return $status Status of this operation */ function rewind (); - - /** - * Seeks to given position - * - * @param $seekPosition Seek position in file - * @param $whence "Seek mode" (see http://de.php.net/fseek) - * @return $tatus Status of this operation - */ - function seek ($seekPosition, $whence = SEEK_SET); } // [EOF] diff --git a/inc/classes/main/file_directories/class_BaseFile.php b/inc/classes/main/file_directories/class_BaseFile.php index bcc61661..a2a3432a 100644 --- a/inc/classes/main/file_directories/class_BaseFile.php +++ b/inc/classes/main/file_directories/class_BaseFile.php @@ -51,6 +51,20 @@ class BaseFile extends BaseFrameworkSystem { parent::__destruct(); } + /** + * Initializes this file class + * + * @param $fileName Name of this abstract file + * @return void + */ + protected function initFile ($fileName) { + // Get a file i/o pointer instance + $pointerInstance = ObjectFactory::createObjectByConfiguredName('file_raw_input_output_class', array($fileName)); + + // ... and set it here + $this->setPointerInstance($pointerInstance); + } + /** * Close a file source and set it's instance to null and the file name * to empty @@ -84,39 +98,6 @@ class BaseFile extends BaseFrameworkSystem { public final function getFileName () { return $this->fileName; } - - /** - * Determines seek position - * - * @return $seekPosition Current seek position - * @todo 0% done - */ - public final function determineSeekPosition () { - $this->partialStub('Unfinished method.'); - } - - /** - * Seek to given offset (default) or other possibilities as fseek() gives. - * - * @param $offset Offset to seek to (or used as "base" for other seeks) - * @param $whence Added to offset (default: only use offset to seek to) - * @return $status Status of file seek: 0 = success, -1 = failed - * @todo 0% done - */ - public function seek ($offset, $whence = SEEK_SET) { - $this->partialStub('Unfinished method.'); - } - - /** - * Size of this file - * - * @return $size Size (in bytes) of file - * @todo Handle seekStatus - * @todo 0% done - */ - public function size () { - $this->partialStub('Unfinished method.'); - } } // [EOF] diff --git a/inc/classes/main/file_directories/index/class_IndexFile.php b/inc/classes/main/file_directories/index/class_IndexFile.php index 2859fd84..c65bed4d 100644 --- a/inc/classes/main/file_directories/index/class_IndexFile.php +++ b/inc/classes/main/file_directories/index/class_IndexFile.php @@ -21,7 +21,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -class IndexFile extends BaseFile implements SeekableWritableFileIterator { +class IndexFile extends BaseFile implements InputOutputPointer { /** * Protected constructor * @@ -35,15 +35,97 @@ class IndexFile extends BaseFile implements SeekableWritableFileIterator { /** * Creates an instance of this File class and prepares it for usage * + * @param $fileName Name of the index file * @return $fileInstance An instance of this File class */ - public final static function createIndexFile () { + public final static function createIndexFile ($fileName) { // Get a new instance $fileInstance = new IndexFile(); + // Init this abstract file + $fileInstance->initFile($fileName); + // Return the prepared instance return $fileInstance; } + + /** + * Determines seek position + * + * @return $seekPosition Current seek position + * @todo 0% done + */ + public final function determineSeekPosition () { + $this->partialStub('Unfinished method.'); + } + + /** + * Seek to given offset (default) or other possibilities as fseek() gives. + * + * @param $offset Offset to seek to (or used as "base" for other seeks) + * @param $whence Added to offset (default: only use offset to seek to) + * @return $status Status of file seek: 0 = success, -1 = failed + * @todo 0% done + */ + public function seek ($offset, $whence = SEEK_SET) { + $this->partialStub('Unfinished method.'); + } + + /** + * Size of this file + * + * @return $size Size (in bytes) of file + * @todo Handle seekStatus + * @todo 0% done + */ + public function size () { + $this->partialStub('Unfinished method.'); + } + + /** + * Read data a file pointer + * + * @return mixed The result of fread() + * @throws NullPointerException If the file pointer instance + * is not set by setPointer() + * @throws InvalidResourceException If there is being set + */ + public function readFromFile () { + $this->partialStub('Unfinished method.'); + } + + /** + * Reads given amount of bytes from file. + * + * @param $bytes Amount of bytes to read + * @return $data Data read from file + */ + public function read ($bytes) { + $this->partialStub('bytes=' . $bytes); + } + + /** + * Write data to a file pointer + * + * @param $dataStream The data stream we shall write to the file + * @return mixed Number of writes bytes or FALSE on error + * @throws NullPointerException If the file pointer instance + * is not set by setPointer() + * @throws InvalidResourceException If there is being set + * an invalid file resource + */ + public function writeToFile ($dataStream) { + $this->partialStub('dataStream=' . $dataStream); + } + + /** + * Rewinds to the beginning of the file + * + * @return $status Status of this operation + */ + public function rewind () { + $this->partialStub('Unfinished method.'); + } } // [EOF] diff --git a/inc/classes/main/file_directories/stack/class_StackFile.php b/inc/classes/main/file_directories/stack/class_StackFile.php index 23ffe842..138be491 100644 --- a/inc/classes/main/file_directories/stack/class_StackFile.php +++ b/inc/classes/main/file_directories/stack/class_StackFile.php @@ -21,7 +21,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -class StackFile extends BaseFile implements SeekableWritableFileIterator { +class StackFile extends BaseFile implements InputOutputPointer { /** * Protected constructor * @@ -35,15 +35,97 @@ class StackFile extends BaseFile implements SeekableWritableFileIterator { /** * Creates an instance of this File class and prepares it for usage * + * @param $fileName Name of the stack file * @return $fileInstance An instance of this File class */ - public final static function createStackFile () { + public final static function createStackFile ($fileName) { // Get a new instance $fileInstance = new StackFile(); + // Init this abstract file + $fileInstance->initFile($fileName); + // Return the prepared instance return $fileInstance; } + + /** + * Determines seek position + * + * @return $seekPosition Current seek position + * @todo 0% done + */ + public final function determineSeekPosition () { + $this->partialStub('Unfinished method.'); + } + + /** + * Seek to given offset (default) or other possibilities as fseek() gives. + * + * @param $offset Offset to seek to (or used as "base" for other seeks) + * @param $whence Added to offset (default: only use offset to seek to) + * @return $status Status of file seek: 0 = success, -1 = failed + * @todo 0% done + */ + public function seek ($offset, $whence = SEEK_SET) { + $this->partialStub('Unfinished method.'); + } + + /** + * Size of this file + * + * @return $size Size (in bytes) of file + * @todo Handle seekStatus + * @todo 0% done + */ + public function size () { + $this->partialStub('Unfinished method.'); + } + + /** + * Read data a file pointer + * + * @return mixed The result of fread() + * @throws NullPointerException If the file pointer instance + * is not set by setPointer() + * @throws InvalidResourceException If there is being set + */ + public function readFromFile () { + $this->partialStub('Unfinished method.'); + } + + /** + * Reads given amount of bytes from file. + * + * @param $bytes Amount of bytes to read + * @return $data Data read from file + */ + public function read ($bytes) { + $this->partialStub('bytes=' . $bytes); + } + + /** + * Write data to a file pointer + * + * @param $dataStream The data stream we shall write to the file + * @return mixed Number of writes bytes or FALSE on error + * @throws NullPointerException If the file pointer instance + * is not set by setPointer() + * @throws InvalidResourceException If there is being set + * an invalid file resource + */ + public function writeToFile ($dataStream) { + $this->partialStub('dataStream=' . $dataStream); + } + + /** + * Rewinds to the beginning of the file + * + * @return $status Status of this operation + */ + public function rewind () { + $this->partialStub('Unfinished method.'); + } } // [EOF] diff --git a/inc/classes/main/stacker/file/class_BaseFileStack.php b/inc/classes/main/stacker/file/class_BaseFileStack.php index 4729486a..53afecbd 100644 --- a/inc/classes/main/stacker/file/class_BaseFileStack.php +++ b/inc/classes/main/stacker/file/class_BaseFileStack.php @@ -201,7 +201,7 @@ class BaseFileStack extends BaseStacker { * @todo Currently the stack file is not cached, please implement a memory-handling class and if enough RAM is found, cache the whole stack file. */ protected function initFileStack ($fileName, $type) { - // Get a file i/o pointer instance for stack file + // Get a stack file instance $fileInstance = ObjectFactory::createObjectByConfiguredName('stack_file_class', array($fileName)); // Get iterator instance