From 6de6b086c826ae3bcdf0996a86319d5b7354e3c6 Mon Sep 17 00:00:00 2001 From: Roland Haeder Date: Mon, 19 May 2014 19:29:51 +0200 Subject: [PATCH] Introduced validateFilePointer(). MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Roland Häder --- .../class_FrameworkFileInputOutputPointer.php | 43 +++++++++++++------ 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/inc/classes/main/file_directories/io/class_FrameworkFileInputOutputPointer.php b/inc/classes/main/file_directories/io/class_FrameworkFileInputOutputPointer.php index 073c2c7f..f76e3ace 100644 --- a/inc/classes/main/file_directories/io/class_FrameworkFileInputOutputPointer.php +++ b/inc/classes/main/file_directories/io/class_FrameworkFileInputOutputPointer.php @@ -75,14 +75,17 @@ class FrameworkFileInputOutputPointer extends BaseFileIo implements InputOutputP } /** - * Read 1024 bytes data from a file pointer + * Validates file pointer and throws exceptions. This method does not return + * anything (not reliable) as this method checks the file pointer and on + * case of an error it throws an exception. If this method does not throw + * any exceptions, the file pointer seems to be fine. * - * @return mixed The result of fread() + * @return void * @throws NullPointerException If the file pointer instance * is not set by setPointer() * @throws InvalidResourceException If there is being set */ - public function readFromFile () { + private function validateFileHeader () { if (is_null($this->getPointer())) { // Pointer not initialized throw new NullPointerException($this, self::EXCEPTION_IS_NULL_POINTER); @@ -91,6 +94,18 @@ class FrameworkFileInputOutputPointer extends BaseFileIo implements InputOutputP throw new InvalidResourceException($this, self::EXCEPTION_INVALID_RESOURCE); } + // All fine here + } + + /** + * Read 1024 bytes data from a file pointer + * + * @return mixed The result of fread() + */ + public function readFromFile () { + // Validate the pointer + $this->validateFilePointer(); + // Read data from the file pointer and return it return $this->read(1024); } @@ -100,19 +115,10 @@ class FrameworkFileInputOutputPointer extends BaseFileIo implements InputOutputP * * @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) { - if (is_null($this->getPointer())) { - // Pointer not initialized - throw new NullPointerException($this, self::EXCEPTION_IS_NULL_POINTER); - } elseif (!is_resource($this->getPointer())) { - // Pointer is not a valid resource! - throw new InvalidResourceException($this, self::EXCEPTION_INVALID_RESOURCE); - } + // Validate the pointer + $this->validateFilePointer(); // Write data to the file pointer and return written bytes return fwrite($this->getPointer(), $dataStream, strlen($dataStream)); @@ -124,6 +130,9 @@ class FrameworkFileInputOutputPointer extends BaseFileIo implements InputOutputP * @return $status Status of this operation */ public function rewind () { + // Validate the pointer + $this->validateFilePointer(); + // Rewind the pointer return rewind($this->getPointer()); } @@ -136,6 +145,9 @@ class FrameworkFileInputOutputPointer extends BaseFileIo implements InputOutputP * @return $status Status of this operation */ public function seek ($seekPosition, $whence = SEEK_SET) { + // Validate the pointer + $this->validateFilePointer(); + // Move the file pointer return fseek($this->getPointer(), $seekPosition, $whence); } @@ -147,6 +159,9 @@ class FrameworkFileInputOutputPointer extends BaseFileIo implements InputOutputP * @return $data Data read from file */ public function read ($bytes) { + // Validate the pointer + $this->validateFilePointer(); + // Try to read given characters $data = fread($this->getPointer(), $bytes); -- 2.30.2