// Simple flush file header which will create it.
$this->flushFileHeader();
+ // Rewind seek position (to beginning of file) and update/flush file header
+ $this->rewineUpdateSeekPosition();
+
+ //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(sprintf('[%s:%d:] EXIT!!', __METHOD__, __LINE__));
+ }
+
+ /**
+ * Seeks to beginning of file, updates seek position in this object and
+ * flushes the header.
+ *
+ * @return void
+ */
+ protected function rewineUpdateSeekPosition () {
+ //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(sprintf('[%s:%d:] CALLED!', __METHOD__, __LINE__));
+
+ // Seek to beginning of file
+ $this->getIteratorInstance()->rewind();
+
+ // And update seek position ...
+ $this->updateSeekPosition();
+
+ // ... to write it back into the file
+ $this->flushFileHeader();
+
//* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(sprintf('[%s:%d:] EXIT!!', __METHOD__, __LINE__));
}
* @return void
*/
protected function seekToOldPosition () {
+ //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(sprintf('[%s:%d:] CALLED!', __METHOD__, __LINE__));
+
// Seek to currently ("old") saved position
$this->getIteratorInstance()->seek($this->getSeekPosition());
+
+ //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(sprintf('[%s:%d:] EXIT!!', __METHOD__, __LINE__));
}
/**
if ($flushHeader === TRUE) {
// Flush header
$this->flushFileHeader();
+
+ // Seek to old position
+ $this->seekToOldPosition();
} // END - if
- // Seek to old position
- $this->seekToOldPosition();
//* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(sprintf('[%s:%d:] EXIT!', __METHOD__, __LINE__));
}
// Now simply write a NUL there. This will pre-allocate the file.
$this->writeData($seekPosition, chr(0));
+ // Rewind seek position (to beginning of file) and update/flush file header
+ $this->rewineUpdateSeekPosition();
+
//* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(sprintf('[%s:%d:] EXIT!', __METHOD__, __LINE__));
}
}