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 |
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
$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;
}
// 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();
/* 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__));
}