From: Roland Haeder Date: Sat, 24 May 2014 13:26:00 +0000 (+0200) Subject: Renamed more and moved code to Block interface. X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=b79b70f64580d944cbde60cd7a08716ea70b3e11;p=core.git Renamed more and moved code to Block interface. Signed-off-by: Roland Häder --- diff --git a/inc/classes/interfaces/block/class_Block.php b/inc/classes/interfaces/block/class_Block.php index 88e0e23e..59b9f4fc 100644 --- a/inc/classes/interfaces/block/class_Block.php +++ b/inc/classes/interfaces/block/class_Block.php @@ -22,14 +22,6 @@ * along with this program. If not, see . */ interface Block extends FrameworkInterface { - /** - * Checks whether the block separator has been found - * - * @param $str String to look in - * @return $isFound Whether the block separator has been found - */ - function isBlockSeparatorFound ($str); - /** * Reads the file header * @@ -43,6 +35,30 @@ interface Block extends FrameworkInterface { * @return void */ function flushFileHeader (); + + /** + * Close a file source and set it's instance to null and the file name + * to empty. + * + * @return void + * @throws NullPointerException If the file pointer instance is not set by setPointer() + * @throws InvalidResourceException If there is being set + */ + function closeFile (); + + /** + * Determines whether the EOF has been reached + * + * @return $isEndOfFileReached Whether the EOF has been reached + */ + function isEndOfFileReached (); + + /** + * Getter for file name + * + * @return $fileName The current file name + */ + function getFileName (); } // [EOF] diff --git a/inc/classes/interfaces/io/class_Pointer.php b/inc/classes/interfaces/io/class_Pointer.php index b0882b7a..c17d881c 100644 --- a/inc/classes/interfaces/io/class_Pointer.php +++ b/inc/classes/interfaces/io/class_Pointer.php @@ -52,15 +52,6 @@ interface Pointer extends FrameworkInterface { * @return $isEndOfFileReached Whether the EOF has been reached */ function isEndOfFileReached (); - - /** - * 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 - */ - function analyzeFile (); } // [EOF] diff --git a/inc/classes/main/class_BaseFrameworkSystem.php b/inc/classes/main/class_BaseFrameworkSystem.php index 4744d9fe..0c08a67a 100644 --- a/inc/classes/main/class_BaseFrameworkSystem.php +++ b/inc/classes/main/class_BaseFrameworkSystem.php @@ -3066,7 +3066,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { * @param $str String to look in * @return $isFound Whether the block separator has been found */ - public function isBlockSeparatorFound ($str) { + public static function isBlockSeparatorFound ($str) { // Determine it $isFound = (strpos($str, self::getBlockSeparator()) !== FALSE); diff --git a/inc/classes/main/file_directories/class_BaseFile.php b/inc/classes/main/file_directories/class_BaseFile.php index 3da2dc02..c596fcb4 100644 --- a/inc/classes/main/file_directories/class_BaseFile.php +++ b/inc/classes/main/file_directories/class_BaseFile.php @@ -480,7 +480,7 @@ y * @return void // Wait until a entry/block separator has been found $data = $this->getBackBuffer(); - while ((!$this->isEndOfFileReached()) && (!$this->getBlockInstance()->isBlockSeparatorFound($data))) { + while ((!$this->isEndOfFileReached()) && (!self::isBlockSeparatorFound($data))) { // Then read the block $data .= $this->read($length); //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('data()=' . strlen($data)); diff --git a/inc/classes/main/file_directories/index/class_IndexFile.php b/inc/classes/main/file_directories/index/class_IndexFile.php index f8e6be92..592c4fe1 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 InputOutputPointer { +class IndexFile extends BaseFile implements Block { /** * Protected constructor * diff --git a/inc/classes/main/file_directories/stack/class_StackFile.php b/inc/classes/main/file_directories/stack/class_StackFile.php index 299b0042..df0bec75 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 InputOutputPointer { +class StackFile extends BaseFile implements Block { /** * Protected constructor * diff --git a/inc/classes/main/index/class_BaseIndex.php b/inc/classes/main/index/class_BaseIndex.php index 8347af67..df3e758f 100644 --- a/inc/classes/main/index/class_BaseIndex.php +++ b/inc/classes/main/index/class_BaseIndex.php @@ -153,7 +153,7 @@ class BaseIndex extends BaseFrameworkSystem { $fileInstance = ObjectFactory::createObjectByConfiguredName('index_file_class', array($fileName, $this)); // Get iterator instance - $iteratorInstance = ObjectFactory::createObjectByConfiguredName('file_io_iterator_class', array($fileInstance)); + $iteratorInstance = ObjectFactory::createObjectByConfiguredName('file_iterator_class', array($fileInstance)); // Is the instance implementing the right interface? assert($iteratorInstance instanceof SeekableWritableFileIterator); diff --git a/inc/classes/main/iterator/file/.htaccess b/inc/classes/main/iterator/file/.htaccess new file mode 100644 index 00000000..3a428827 --- /dev/null +++ b/inc/classes/main/iterator/file/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/inc/classes/main/iterator/file/class_FileIterator.php b/inc/classes/main/iterator/file/class_FileIterator.php new file mode 100644 index 00000000..8d8e77fc --- /dev/null +++ b/inc/classes/main/iterator/file/class_FileIterator.php @@ -0,0 +1,198 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2012 Hub Developer Team + * @license GNU GPL 3.0 or any newer version + * @link http://www.ship-simu.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 + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +class FileIterator extends BaseIterator implements SeekableWritableFileIterator { + /** + * Protected constructor + * + * @return void + */ + protected function __construct () { + // Call parent constructor + parent::__construct(__CLASS__); + } + + /** + * Creates an instance of this class + * + * @param $pointerInstance An instance of a Block class + * @return $iteratorInstance An instance of a Iterator class + */ + public final static function createFileIterator (Block $blockInstance) { + // Get new instance + $iteratorInstance = new FileIterator(); + + // Set the instance here + $iteratorInstance->setBlockInstance($blockInstance); + + // Return the prepared instance + return $iteratorInstance; + } + + /** + * Gets currently read data + * + * @return $current Currently read data + */ + public function current () { + // Call block instance + return $this->getBlockInstance()->current(); + } + + /** + * Gets current seek position ("key"). + * + * @return $key Current key in iteration + */ + public function key () { + // Return it + return $this->getBlockInstance()->determineSeekPosition(); + } + + /** + * Advances to next "block" of bytes + * + * @return void + */ + public function next () { + // Call block instance + $this->getBlockInstance()->next(); + } + + /** + * Rewinds to the beginning of the file + * + * @return $status Status of this operation + */ + public function rewind () { + // Call block instance + return $this->getBlockInstance()->rewind(); + } + + /** + * 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 + */ + public function valid () { + // Call block instance + return $this->getBlockInstance()->valid(); + } + + /** + * Seeks to given position + * + * @param $seekPosition Seek position in file + * @return $status Status of this operation + */ + public function seek ($seekPosition) { + // Call block instance + return $this->getBlockInstance()->seek($seekPosition); + } + + /** + * Writes at given position by seeking to it. + * + * @param $seekPosition Seek position in file + * @param $data Data to be written + * @return void + */ + public function writeAtPosition ($seekPosition, $data) { + // First seek to it + $this->seek($seekPosition); + + // Then write the data at that position + $this->getBlockInstance()->writeToFile($data); + } + + /** + * Size of file stack + * + * @return $size Size (in bytes) of file + */ + public function size () { + // Call the block object + $size = $this->getBlockInstance()->size(); + + // Return result + return $size; + } + + /** + * Reads given amount of bytes from file. + * + * @param $bytes Amount of bytes to read + * @return $data Data read from file + */ + public function read ($bytes) { + // Call block instance + return $this->getBlockInstance()->read($bytes); + } + + /** + * 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 + */ + public function analyzeFile () { + // Just call the block instance + $this->getBlockInstance()->analyzeFile(); + } + + /** + * Checks whether the file header is initialized + * + * @return $isInitialized Whether the file header is initialized + */ + public function isFileHeaderInitialized () { + // Just call the block instance + return $this->getBlockInstance()->isFileHeaderInitialized(); + } + + /** + * Creates the assigned file + * + * @return void + */ + public function createFileHeader () { + // Just call the block instance + $this->getBlockInstance()->createFileHeader(); + } + + /** + * Pre-allocates file (if enabled) with some space for later faster write access. + * + * @param $type Type of the file + * @return void + */ + public function preAllocateFile ($type) { + // Just call the block instance + $this->getBlockInstance()->preAllocateFile($type); + } +} + +// [EOF] +?> diff --git a/inc/classes/main/iterator/io/.htaccess b/inc/classes/main/iterator/io/.htaccess deleted file mode 100644 index 3a428827..00000000 --- a/inc/classes/main/iterator/io/.htaccess +++ /dev/null @@ -1 +0,0 @@ -Deny from all diff --git a/inc/classes/main/iterator/io/class_FileIoIterator.php b/inc/classes/main/iterator/io/class_FileIoIterator.php deleted file mode 100644 index 21054378..00000000 --- a/inc/classes/main/iterator/io/class_FileIoIterator.php +++ /dev/null @@ -1,198 +0,0 @@ - - * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2012 Hub Developer Team - * @license GNU GPL 3.0 or any newer version - * @link http://www.ship-simu.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 - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -class FileIoIterator extends BaseIterator implements SeekableWritableFileIterator { - /** - * Protected constructor - * - * @return void - */ - protected function __construct () { - // Call parent constructor - parent::__construct(__CLASS__); - } - - /** - * Creates an instance of this class - * - * @param $pointerInstance An instance of a InputOutputPointer class - * @return $iteratorInstance An instance of a Iterator class - */ - public final static function createFileIoIterator (InputOutputPointer $pointerInstance) { - // Get new instance - $iteratorInstance = new FileIoIterator(); - - // Set the instance here - $iteratorInstance->setPointerInstance($pointerInstance); - - // Return the prepared instance - return $iteratorInstance; - } - - /** - * Gets currently read data - * - * @return $current Currently read data - */ - public function current () { - // Call pointer instance - return $this->getPointerInstance()->current(); - } - - /** - * Gets current seek position ("key"). - * - * @return $key Current key in iteration - */ - public function key () { - // Return it - return $this->getPointerInstance()->determineSeekPosition(); - } - - /** - * Advances to next "block" of bytes - * - * @return void - */ - public function next () { - // Call pointer instance - $this->getPointerInstance()->next(); - } - - /** - * Rewinds to the beginning of the file - * - * @return $status Status of this operation - */ - public function rewind () { - // Call pointer instance - return $this->getPointerInstance()->rewind(); - } - - /** - * 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 - */ - public function valid () { - // Call pointer instance - return $this->getPointerInstance()->valid(); - } - - /** - * Seeks to given position - * - * @param $seekPosition Seek position in file - * @return $status Status of this operation - */ - public function seek ($seekPosition) { - // Call pointer instance - return $this->getPointerInstance()->seek($seekPosition); - } - - /** - * Writes at given position by seeking to it. - * - * @param $seekPosition Seek position in file - * @param $data Data to be written - * @return void - */ - public function writeAtPosition ($seekPosition, $data) { - // First seek to it - $this->seek($seekPosition); - - // Then write the data at that position - $this->getPointerInstance()->writeToFile($data); - } - - /** - * Size of file stack - * - * @return $size Size (in bytes) of file - */ - public function size () { - // Call the pointer object - $size = $this->getPointerInstance()->size(); - - // Return result - return $size; - } - - /** - * Reads given amount of bytes from file. - * - * @param $bytes Amount of bytes to read - * @return $data Data read from file - */ - public function read ($bytes) { - // Call pointer instance - return $this->getPointerInstance()->read($bytes); - } - - /** - * 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 - */ - public function analyzeFile () { - // Just call the pointer instance - $this->getPointerInstance()->analyzeFile(); - } - - /** - * Checks whether the file header is initialized - * - * @return $isInitialized Whether the file header is initialized - */ - public function isFileHeaderInitialized () { - // Just call the pointer instance - return $this->getPointerInstance()->isFileHeaderInitialized(); - } - - /** - * Creates the assigned file - * - * @return void - */ - public function createFileHeader () { - // Just call the pointer instance - $this->getPointerInstance()->createFileHeader(); - } - - /** - * Pre-allocates file (if enabled) with some space for later faster write access. - * - * @param $type Type of the file - * @return void - */ - public function preAllocateFile ($type) { - // Just call the pointer instance - $this->getPointerInstance()->preAllocateFile($type); - } -} - -// [EOF] -?> diff --git a/inc/classes/main/stacker/file/class_BaseFileStack.php b/inc/classes/main/stacker/file/class_BaseFileStack.php index 3cc3240a..6174a882 100644 --- a/inc/classes/main/stacker/file/class_BaseFileStack.php +++ b/inc/classes/main/stacker/file/class_BaseFileStack.php @@ -164,7 +164,7 @@ class BaseFileStack extends BaseStacker { $fileInstance = ObjectFactory::createObjectByConfiguredName('stack_file_class', array($fileName, $this)); // Get iterator instance - $iteratorInstance = ObjectFactory::createObjectByConfiguredName('file_io_iterator_class', array($fileInstance)); + $iteratorInstance = ObjectFactory::createObjectByConfiguredName('file_iterator_class', array($fileInstance)); // Is the instance implementing the right interface? assert($iteratorInstance instanceof SeekableWritableFileIterator); diff --git a/inc/config.php b/inc/config.php index a51fb8df..d5e0f8c7 100644 --- a/inc/config.php +++ b/inc/config.php @@ -368,8 +368,8 @@ $cfg->setConfigEntry('file_raw_output_class', 'FrameworkFileOutputPointer'); // CFG: FILE-INPUT-OUTPUT-CLASS $cfg->setConfigEntry('file_raw_input_output_class', 'FrameworkFileInputOutputPointer'); -// CFG: FILE-IO-ITERATOR-CLASS -$cfg->setConfigEntry('file_io_iterator_class', 'FileIoIterator'); +// CFG: FILE-ITERATOR-CLASS +$cfg->setConfigEntry('file_iterator_class', 'FileIterator'); // CFG: FILE-STACK-PRE-ALLOCATE-ENABLED $cfg->setConfigEntry('file_stack_pre_allocate_enabled', 'Y');