Continued with file-based stacks:
authorRoland Haeder <roland@mxchange.org>
Sat, 17 May 2014 22:42:05 +0000 (00:42 +0200)
committerRoland Haeder <roland@mxchange.org>
Sat, 17 May 2014 22:42:05 +0000 (00:42 +0200)
- used writeAtPosition() instead of seek()
- added debug line
- updated documentation

Signed-off-by: Roland H├Ąder <roland@mxchange.org>
contrib/file_stack/format.txt
inc/classes/main/file_directories/class_BaseFileIo.php
inc/classes/main/stacker/file/class_BaseFileStack.php

index 637baf6..9d88c78 100644 (file)
@@ -15,7 +15,7 @@ Continued:
 
 Purpose: | hash 0 | separator | name 0 | entry 0    | hash n | separator | name n | entry n    | EOF |
 ---------+--------+-----------+--------+------------+--------+-----------+--------+------------+-----+
-Bytes:   |  ???   | 1         | 10     | 1-n (pack) |  ???   | 1         | 10     | 1-n (pack) | 1   |
+Bytes:   |  64    | 1         | 10     | 1-n (pack) |  64    | 1         | 10     | 1-n (pack) | 1   |
 ---------+--------+-----------+--------+------------+--------+-----------+--------+------------+-----+
 Example: | abc    |    ???    | foo    |    ...     | abc    |    ???    | bar    |     ...    | EOF |
 
@@ -25,7 +25,7 @@ Explanations:
  separator    - Serves to detect end of strings with unknown/flexible length
  count        - Total amount of entries (not deleted) encoded in hexa-decimal
  position     - Seek position of current entry (which current() will give)
- hash X       - Hash sum of entry X
+ hash X       - Hash sum of entry X (SHA 256)
  name X       - Name of stack the entries belongs in
  entry X      - The actual data, compressed with pack()
  EOF          - End-of-file character
index e4a076f..cce45b8 100644 (file)
@@ -144,7 +144,7 @@ class BaseFileIo extends BaseFrameworkSystem {
                $status = fseek($this->getPointer(), $offset, $whence);
 
                // Return status
-               /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(sprintf('[%s:%d:] status=%s', __METHOD__, __LINE__, $status));
+               /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(sprintf('[%s:%d:] status=%d', __METHOD__, __LINE__, $status));
                return $status;
        }
 
@@ -161,7 +161,7 @@ class BaseFileIo extends BaseFrameworkSystem {
 
                // Seek to end
                $seekStatus = $this->seek(0, SEEK_END);
-               /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(sprintf('[%s:%d:] seekStatus=%s', __METHOD__, __LINE__, $seekStatus));
+               /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(sprintf('[%s:%d:] seekStatus=%d', __METHOD__, __LINE__, $seekStatus));
 
                // Get position again  (which is the end of the file)
                $size = $this->getSeekPosition();
index 6f55182..68d95fa 100644 (file)
@@ -277,7 +277,10 @@ class BaseFileStack extends BaseStacker {
                /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(sprintf('[%s:%d:] seekPosition=%s', __METHOD__, __LINE__, $seekPosition));
 
                // Now seek to the position
-               $this->getIteratorInstance()->seek($seekPosition);
+               $seekStatus = $this->getIteratorInstance()->writeAtPosition($seekPosition, chr(0));
+
+               // Did it work?
+               /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(sprintf('[%s:%d:] seekStatus=%d', __METHOD__, __LINE__, $seekStatus));
 
                /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(sprintf('[%s:%d:] EXIT!', __METHOD__, __LINE__));
        }