virtual void DataCommit (t4_i32 newSize_);
Flush and truncate file

void DataLoad (void* buffer_, int length_);
Read an exact number of bytes

virtual int DataRead (void* buffer_, int length_);
Read a number of bytes

virtual void DataSeek (t4_i32 position_);
Set file position

virtual bool DataWrite (const void* buffer_, int length_);
Write a number of bytes, return true if successful

virtual bool IsValid () const;
True if we can do I/O with this object

virtual void ResetFileMapping ();
Override to support memory-mapped files

bool _bytesFlipped;
True if the storage format is not native (default is false)

int _failure;
Error code of last failed I/O operation, zero if I/O was ok

bool _keepAfterCommit;
Keep data in memory after each commit (default is false)

const t4_byte* _mapLimit;
Past last byte in file mapping, zero if not active

const t4_byte* _mapStart;
First byte in file mapping, zero if not active

c4_Strategy ();

virtual ~c4_Strategy ();


class c4_Strategy