X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmiddleware%2Fio%2Fclass_FileIoHandler.php;h=d8882a726b9a4f121b785af53de9cc49438e1982;hp=e0bf69dc10a586462f8332b7119d3302511b4838;hb=aa07fa0b7c42f430541e0610d45f4aa047e60666;hpb=607a11e2c22949ea0647568c17d62a605595e83b diff --git a/inc/classes/middleware/io/class_FileIoHandler.php b/inc/classes/middleware/io/class_FileIoHandler.php index e0bf69dc..d8882a72 100644 --- a/inc/classes/middleware/io/class_FileIoHandler.php +++ b/inc/classes/middleware/io/class_FileIoHandler.php @@ -3,11 +3,11 @@ * This is a file IO handler. It handles reading from and writing to files. * Missing paths in writing process will be automatically created. * - * @author Roland Haeder + * @author Roland Haeder * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2012 Core Developer Team + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2013 Core Developer Team * @license GNU GPL 3.0 or any newer version - * @link http://www.ship-simu.org + * @link http://www.shipsimu.org * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,7 +22,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -class FileIoHandler extends BaseMiddleware { +class FileIoHandler extends BaseMiddleware implements IoHandler { /** * The *real* file input class we shall use for reading data */ @@ -115,34 +115,86 @@ class FileIoHandler extends BaseMiddleware { public final function getOutputStream () { return $this->outputStream; } + /** + * Saves streamed (that are mostly serialized objects) data to files or + * external servers. + * + * @param $fileName The local file's name including full path + * @param $dataArray Array containing the compressor's extension and streamed data + * @return void + * @throws UnsupportedOperationException If this method is called + */ + public function saveFile ($fileName, array $dataArray) { + self::createDebugInstance(__CLASS__)->debugOutput('fileName=' . $fileName . ',dataArray()=' . count($dataArray)); + throw new UnsupportedOperationException(array($this, __FUNCTION__), self::EXCEPTION_UNSPPORTED_OPERATION); + } /** * Saves a file with data by using the current output stream * - * @param $fileName Name of the file - * @param $dataArray Array with file contents + * @param $fileName Name of the file + * @param $dataStream File data stream + * @param $objectInstance An instance of a FrameworkInterface class (default: NULL) * @return void - * @see FileOutputStreamer */ - public function saveFile ($fileName, $dataArray) { - // Get output stream - $outInstance = $this->getOutputStream(); + public function saveStreamToFile ($fileName, $dataStream, FrameworkInterface $objectInstance = NULL) { + // Default is this array + $className = $this->__toString(); + + // Is the object instance set? + if ($objectInstance instanceof FrameworkInterface) { + // Then use this + $className = $objectInstance->__toString(); + } // END - if + + // Prepare output array + $dataArray = array( + 0 => $className, + 1 => $dataStream + ); // Send the fileName and dataArray to the output handler - $outInstance->saveFile($fileName, $dataArray); + $this->getOutputStream()->saveFile($fileName, $dataArray); } /** Loads data from a file over the input handler * + * @param $fqfn Given full-qualified file name (FQFN) to load * @return $array Array with the file contents - * @see FileInputStreamer */ public function loadFileContents ($fqfn) { - // Get output stream - $inInstance = $this->getInputStream(); - // Read from the input handler - return $inInstance->loadFileContents($fqfn); + return $this->getInputStream()->loadFileContents($fqfn); + } + + /** + * Determines seek position + * + * @return $seekPosition Current seek position + * @todo 0% done + */ + public function determineSeekPosition () { + $this->partialStub(); + } + + /** + * 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 + */ + public function seek ($offset, $whence = SEEK_SET) { + $this->partialStub('offset=' . $offset . ',whence=' . $whence); + } + + /** + * Size of file stack + * + * @return $size Size (in bytes) of file + */ + public function size () { + $this->partialStub(); } }