X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Ffile_directories%2Fio%2Fclass_FrameworkFileInputOutputPointer.php;h=fb1762ad437c8f954037700ad4671773b715f5fd;hp=f76e3ace3a81edd320aeb2c11b45a0e262fd7a29;hb=6c2a33f8f1a702244ac99f610a1d51208fc34619;hpb=6de6b086c826ae3bcdf0996a86319d5b7354e3c6 diff --git a/inc/classes/main/file_directories/io/class_FrameworkFileInputOutputPointer.php b/inc/classes/main/file_directories/io/class_FrameworkFileInputOutputPointer.php index f76e3ace..fb1762ad 100644 --- a/inc/classes/main/file_directories/io/class_FrameworkFileInputOutputPointer.php +++ b/inc/classes/main/file_directories/io/class_FrameworkFileInputOutputPointer.php @@ -85,7 +85,7 @@ class FrameworkFileInputOutputPointer extends BaseFileIo implements InputOutputP * is not set by setPointer() * @throws InvalidResourceException If there is being set */ - private function validateFileHeader () { + private function validateFilePointer () { if (is_null($this->getPointer())) { // Pointer not initialized throw new NullPointerException($this, self::EXCEPTION_IS_NULL_POINTER); @@ -171,6 +171,68 @@ class FrameworkFileInputOutputPointer extends BaseFileIo implements InputOutputP // Then return it return $data; } + + /** + * Analyzes entries in index file. This will count all found (and valid) + * entries, mark invalid as damaged and count gaps ("fragmentation"). If + * only gaps are found, the file is considered as "virgin" (no entries). + * + * @return void + * @throws UnsupportedOperationException If this method is called + */ + public function analyzeFile () { + throw new UnsupportedOperationException(array($this, __FUNCTION__), self::EXCEPTION_UNSPPORTED_OPERATION); + } + + /** + * Advances to next "block" of bytes + * + * @return void + * @throws UnsupportedOperationException If this method is called + */ + public function next () { + throw new UnsupportedOperationException(array($this, __FUNCTION__), self::EXCEPTION_UNSPPORTED_OPERATION); + } + + /** + * Checks wether the current entry is valid (not at the end of the file). + * This method will return TRUE if an emptied (nulled) entry has been found. + * + * @return $isValid Whether the next entry is valid + * @throws UnsupportedOperationException If this method is called + */ + public function valid () { + throw new UnsupportedOperationException(array($this, __FUNCTION__), self::EXCEPTION_UNSPPORTED_OPERATION); + } + + /** + * Gets current seek position ("key"). + * + * @return $key Current key in iteration + * @throws UnsupportedOperationException If this method is called + */ + public function key () { + throw new UnsupportedOperationException(array($this, __FUNCTION__), self::EXCEPTION_UNSPPORTED_OPERATION); + } + + /** + * "Getter" for file size + * + * @return $fileSize Size of currently loaded file + */ + public function getFileSize () { + // Check if the pointer is still valid + $this->validateFilePointer(); + + // Get file's data + $fileData = fstat($this->getPointer()); + + // Make sure the required array key is there + assert(isset($fileData['size'])); + + // Return size + return $fileData['size']; + } } // [EOF]