Also getSeekPosition() belongs here ... + TODOs.txt updated (--amend rocks!)
[core.git] / inc / classes / main / iterator / file / class_FileIterator.php
index 712754a769054741e88627e9b98d4d7219786958..303097568594b096714c16ed25b62a39c9e74c33 100644 (file)
@@ -112,21 +112,6 @@ class FileIterator extends BaseIterator implements SeekableWritableFileIterator
                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
         *
@@ -193,6 +178,114 @@ class FileIterator extends BaseIterator implements SeekableWritableFileIterator
                // Just call the block instance
                $this->getBlockInstance()->preAllocateFile($type);
        }
+
+       /**
+        * Initializes counter for valid entries, arrays for damaged entries and
+        * an array for gap seek positions. If you call this method on your own,
+        * please re-analyze the file structure. So you are better to call
+        * analyzeFile() instead of this method.
+        *
+        * @return      void
+        */
+       public function initCountersGapsArray () {
+               // Call block instance
+               $this->getBlockInstance()->initCountersGapsArray();
+       }
+
+       /**
+        * Getter for header size
+        *
+        * @return      $totalEntries   Size of file header
+        */
+       public final function getHeaderSize () {
+               // Call block instance
+               return $this->getBlockInstance()->getHeaderSize();
+       }
+
+       /**
+        * Setter for header size
+        *
+        * @param       $headerSize             Size of file header
+        * @return      void
+        */
+       public final function setHeaderSize ($headerSize) {
+               // Call block instance
+               $this->getBlockInstance()->setHeaderSize($headerSize);
+       }
+
+       /**
+        * Getter for header array
+        *
+        * @return      $totalEntries   Size of file header
+        */
+       public final function getHeader () {
+               // Call block instance
+               return $this->getBlockInstance()->getHeader();
+       }
+
+       /**
+        * Setter for header
+        *
+        * @param       $header         Array for a file header
+        * @return      void
+        */
+       public final function setHeader (array $header) {
+               // Call block instance
+               $this->getBlockInstance()->setHeader($header);
+       }
+
+       /**
+        * Updates seekPosition attribute from file to avoid to much access on file.
+        *
+        * @return      void
+        */
+       public function updateSeekPosition () {
+               // Call block instance
+               $this->getBlockInstance()->updateSeekPosition();
+       }
+
+       /**
+        * Getter for total entries
+        *
+        * @return      $totalEntries   Total entries in this file
+        */
+       public final function getCounter () {
+               // Call block instance
+               return $this->getBlockInstance()->getCounter();
+       }
+
+       /**
+        * "Getter" for file size
+        *
+        * @return      $fileSize       Size of currently loaded file
+        */
+       public function getFileSize () {
+               // Call block instance
+               return $this->getBlockInstance()->getFileSize();
+       }
+
+       /**
+        * Writes data at given position
+        *
+        * @param       $seekPosition   Seek position
+        * @param       $data                   Data to be written
+        * @param       $flushHeader    Whether to flush the header (default: flush)
+        * @return      void
+        */
+       public function writeData ($seekPosition, $data, $flushHeader = TRUE) {
+               // Call block instance
+               $this->getBlockInstance()->writeData($seekPosition, $data, $flushHeader);
+       }
+
+       /**
+        * Getter for seek position
+        *
+        * @return      $seekPosition   Current seek position (stored here in object)
+        */
+       public function getSeekPosition () {
+               // Call block instance
+               return $this->getBlockInstance()->getSeekPosition();
+       }
 }
 
 // [EOF]