X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=framework%2Fmain%2Fclasses%2Findex%2Ffile_stack%2Fclass_FileStackIndex.php;h=5e399b801369f5676ea1e46d4b201ec034152ca4;hb=refs%2Fheads%2Fmaster;hp=7ee3bd5b0b89760ac9f58d7f45b5fb819e2f3e12;hpb=f57dd51863ec9baacba447d76b46d5c709b9b02e;p=core.git diff --git a/framework/main/classes/index/file_stack/class_FileStackIndex.php b/framework/main/classes/index/file_stack/class_FileStackIndex.php deleted file mode 100644 index 7ee3bd5b..00000000 --- a/framework/main/classes/index/file_stack/class_FileStackIndex.php +++ /dev/null @@ -1,117 +0,0 @@ - - * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2019 Core 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 FileStackIndex extends BaseIndex implements IndexableStack, Registerable { - /** - * Protected constructor - * - * @return void - */ - protected function __construct () { - // Call parent constructor - parent::__construct(__CLASS__); - } - - /** - * Creates an instance of this Index class and prepares it for usage - * - * @param $fileInfoInstance An instance of a SplFileInfo class - * @return $indexInstance An instance of this Index class - */ - public final static function createFileStackIndex (SplFileInfo $fileInfoInstance) { - // Get a new instance - $indexInstance = new FileStackIndex(); - - // Initialize index - $indexInstance->initIndex($fileInfoInstance); - - // Return the prepared instance - return $indexInstance; - } - - /** - * Adds given hash to an index file - * - * @param $groupId Name of stack to add hash for - * @param $data Hash and gap position to be added to the index - * @return void - */ - public function addHashToIndex ($groupId, array $data) { - // Debug message - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('[%s:%d:] groupId=%s,hash=%s,gap=%d,length=%d - CALLED!', __METHOD__, __LINE__, $groupId, $data[BaseFileStack::ARRAY_INDEX_HASH], $data[BaseFileStack::ARRAY_INDEX_GAP_POSITION], $data[BaseFileStack::ARRAY_INDEX_DATA_LENGTH])); - - // Raw data been written to the file - $rawData = sprintf('%s%s%s%s%s%s%s', - $groupId, - self::SEPARATOR_GROUP_HASH, - hex2bin($data[BaseFileStack::ARRAY_INDEX_HASH]), - self::SEPARATOR_HASH_GAP_POSITION, - $data[BaseFileStack::ARRAY_INDEX_GAP_POSITION], - self::SEPARATOR_GAP_LENGTH, - $data[BaseFileStack::ARRAY_INDEX_DATA_LENGTH] - ); - - // Debug message - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('[%s:%d:] groupId=%s,hash=%s,rawData()=%d', __METHOD__, __LINE__, $groupId, $data[BaseFileStack::ARRAY_INDEX_HASH], strlen($rawData))); - - // Search for next free gap - $gapPosition = $this->getIteratorInstance()->searchNextGap(strlen($rawData)); - - // Gap position cannot be smaller than header length + 1 - assert($gapPosition > $this->getIteratorInstance()->getHeaderSize()); - - // Debug message - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('[%s:%d:] groupId=%s,hash=%s,gapPosition=%s', __METHOD__, __LINE__, $groupId, $data[BaseFileStack::ARRAY_INDEX_HASH], $gapPosition)); - - // Then write the data at that gap - $this->getIteratorInstance()->writeData($gapPosition, $rawData); - - // Debug message - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('[%s:%d:] groupId=%s,hash=%s,rawData()=%d - EXIT!', __METHOD__, __LINE__, $groupId, $data[BaseFileStack::ARRAY_INDEX_HASH], strlen($rawData))); - } - - /** - * Searches for next suitable gap the given length of data can fit in - * including padding bytes. - * - * @param $length Length of raw data - * @return $seekPosition Found next gap's seek position - */ - public function searchNextGap ($length) { - $this->partialStub('length=' . $length); - } - -}