X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=framework%2Fmain%2Fmiddleware%2Fio%2Fclass_FileIoHandler.php;h=67dcaba535b7cae5a3f640304ceffeb35e0c5021;hb=3ed365cb1808ac8a228da18241e789866f419178;hp=0682e0376c912e34801a1a930de1014a9af158d1;hpb=c43b569f2b140f40ece9f6e5b9a3825cb76b6413;p=core.git diff --git a/framework/main/middleware/io/class_FileIoHandler.php b/framework/main/middleware/io/class_FileIoHandler.php index 0682e037..67dcaba5 100644 --- a/framework/main/middleware/io/class_FileIoHandler.php +++ b/framework/main/middleware/io/class_FileIoHandler.php @@ -1,15 +1,18 @@ * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2017 Core Developer Team + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2020 Core Developer Team * @license GNU GPL 3.0 or any newer version * @link http://www.shipsimu.org * @@ -35,15 +38,9 @@ use CoreFramework\Stream\Filesystem\FileOutputStreamer; * along with this program. If not, see . */ class FileIoHandler extends BaseMiddleware implements IoHandler { - /** - * The *real* file input class we shall use for reading data - */ - private $inputStream = NULL; - - /** - * The *real* file output class we shall use for reading data - */ - private $outputStream = NULL; + // Load traits + use FileInputStreamerTrait; + use FileOutputStreamerTrait; /** * An instance of this class @@ -55,7 +52,7 @@ class FileIoHandler extends BaseMiddleware implements IoHandler { * * @return void */ - protected function __construct () { + private function __construct () { // Call parent constructor parent::__construct(__CLASS__); @@ -74,8 +71,8 @@ class FileIoHandler extends BaseMiddleware implements IoHandler { $ioHandler = new FileIoHandler(); // Set the *real* file IO instances (both the same) - $ioHandler->setInputStream(ObjectFactory::createObjectByConfiguredName('file_input_class')); - $ioHandler->setOutputStream(ObjectFactory::createObjectByConfiguredName('file_output_class')); + $ioHandler->setInputStreamerInstance(ObjectFactory::createObjectByConfiguredName('file_input_class')); + $ioHandler->setOutputStreamerInstance(ObjectFactory::createObjectByConfiguredName('file_output_class')); // Return instance return $ioHandler; @@ -90,66 +87,29 @@ class FileIoHandler extends BaseMiddleware implements IoHandler { return self::$selfInstance; } - /** - * Setter for the *real* file input instance - * - * @param $inputStream The *real* file-input class - * @return void - */ - public final function setInputStream (FileInputStreamer $inputStream) { - $this->inputStream = $inputStream; - } - - /** - * Getter for the *real* file input instance - * - * @return $inputStream The *real* file-input class - */ - public final function getInputStream () { - return $this->inputStream; - } - - /** - * Setter for the *real* file output instance - * - * @param $outputStream The *real* file-output class - * @return void - */ - public final function setOutputStream (FileOutputStreamer $outputStream) { - $this->outputStream = $outputStream; - } - - /** - * Getter for the *real* file output instance - * - * @return $outputStream The *real* file-output class - */ - 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 $infoInstance An instance of a SplFileInfo class * @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__, __LINE__)->debugOutput('fileName=' . $fileName . ',dataArray()=' . count($dataArray)); + public function saveFile (SplFileInfo $infoInstance, array $dataArray) { + self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('infoInstance.pathname=' . $infoInstance->getPathname() . ',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 $infoInstance An instance of a SplFileInfo class * @param $dataStream File data stream * @param $objectInstance An instance of a FrameworkInterface class (default: NULL) * @return void */ - public function saveStreamToFile ($fileName, $dataStream, FrameworkInterface $objectInstance = NULL) { + public function saveStreamToFile (SplFileInfo $infoInstance, string $dataStream, FrameworkInterface $objectInstance = NULL) { // Default is this array $className = $this->__toString(); @@ -165,18 +125,18 @@ class FileIoHandler extends BaseMiddleware implements IoHandler { 1 => $dataStream ); - // Send the fileName and dataArray to the output handler - $this->getOutputStream()->saveFile($fileName, $dataArray); + // Send the infoInstance and dataArray to the output handler + $this->getOutputStreamerInstance()->saveFile($infoInstance, $dataArray); } /** Loads data from a file over the input handler * - * @param $fqfn Given full-qualified file name (FQFN) to load + * @param $infoInstance An instance of a SplFileInfo class * @return $array Array with the file contents */ - public function loadFileContents ($fqfn) { + public function loadFileContents (SplFileInfo $infoInstance) { // Read from the input handler - return $this->getInputStream()->loadFileContents($fqfn); + return $this->getInputStreamerInstance()->loadFileContents($infoInstance); } /** @@ -194,9 +154,9 @@ class FileIoHandler extends BaseMiddleware implements IoHandler { * * @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 + * @return void */ - public function seek ($offset, $whence = SEEK_SET) { + public function seek (int $offset, int $whence = SEEK_SET) { $this->partialStub('offset=' . $offset . ',whence=' . $whence); } @@ -209,4 +169,14 @@ class FileIoHandler extends BaseMiddleware implements IoHandler { $this->partialStub(); } + /** + * "Getter" for seek position + * + * @return $seekPosition Current seek position + * @todo 0% done + */ + public function getPosition () { + $this->partialStub(); + } + }