Isle
|
Implementation of LegoStorage for file-backed storage using stdio FILE*. More...
#include <legostorage.h>
Public Member Functions | |
LegoFile () | |
Default constructor initializes with NULL file pointer. More... | |
~LegoFile () override | |
Destructor. More... | |
LegoResult | Read (void *p_buffer, LegoU32 p_size) override |
Reads bytes from file at current position. More... | |
LegoResult | Write (const void *p_buffer, LegoU32 p_size) override |
Writes bytes to file at current position. More... | |
LegoResult | GetPosition (LegoU32 &p_position) override |
Gets the current file pointer position relative to beginning. More... | |
LegoResult | SetPosition (LegoU32 p_position) override |
Sets the current file pointer position. More... | |
LegoResult | Open (const char *p_name, LegoU32 p_mode) |
Opens a file with given name and mode, closing existing file if needed. More... | |
![]() | |
LegoStorage () | |
Default constructor initializing mode to zero. More... | |
virtual | ~LegoStorage () |
Virtual destructor for safe polymorphic destruction. More... | |
virtual LegoResult | Read (void *p_buffer, LegoU32 p_size)=0 |
Read bytes from storage into buffer. More... | |
virtual LegoResult | Write (const void *p_buffer, LegoU32 p_size)=0 |
Write bytes from buffer into storage. More... | |
virtual LegoResult | GetPosition (LegoU32 &p_position)=0 |
Get current read/write position in stream. More... | |
virtual LegoResult | SetPosition (LegoU32 p_position)=0 |
Set current read/write position in stream. More... | |
virtual LegoBool | IsWriteMode () |
Returns TRUE if object was opened in write mode. More... | |
virtual LegoBool | IsReadMode () |
Returns TRUE if object was opened in read mode. More... | |
LegoStorage * | WriteString (const char *p_data) |
Writes a length-prefixed string to storage. More... | |
LegoStorage * | WriteU8 (LegoU8 p_data) |
Writes an 8-bit unsigned value to storage. More... | |
LegoStorage * | WriteS16 (LegoS16 p_data) |
Writes a 16-bit signed value to storage. More... | |
LegoStorage * | WriteU16 (LegoU16 p_data) |
Writes a 16-bit unsigned value to storage. More... | |
LegoStorage * | WriteS32 (MxS32 p_data) |
Writes a 32-bit signed value to storage. More... | |
LegoStorage * | WriteU32 (MxU32 p_data) |
Writes a 32-bit unsigned value to storage. More... | |
LegoStorage * | WriteFloat (LegoFloat p_data) |
Writes a floating-point (single-precision) value to storage. More... | |
LegoStorage * | WriteVector (Mx3DPointFloat p_data) |
Writes a 3D vector (three floats) to storage. More... | |
LegoStorage * | WriteMxString (MxString p_data) |
Writes a length-prefixed MxString to storage. More... | |
LegoStorage * | ReadString (char *p_data) |
Reads a length-prefixed string from storage. More... | |
LegoStorage * | ReadU8 (LegoU8 &p_data) |
Reads an 8-bit unsigned value from storage. More... | |
LegoStorage * | ReadS16 (LegoS16 &p_data) |
Reads a 16-bit signed value from storage. More... | |
LegoStorage * | ReadU16 (LegoU16 &p_data) |
Reads a 16-bit unsigned value from storage. More... | |
LegoStorage * | ReadS32 (MxS32 &p_data) |
Reads a 32-bit signed value from storage. More... | |
LegoStorage * | ReadU32 (MxU32 &p_data) |
Reads a 32-bit unsigned value from storage. More... | |
LegoStorage * | ReadFloat (LegoFloat &p_data) |
Reads a floating-point (single-precision) value from storage. More... | |
LegoStorage * | ReadVector (Mx3DPointFloat &p_data) |
Reads a 3D vector (three floats) from storage. More... | |
LegoStorage * | ReadMxString (MxString &p_data) |
Reads a length-prefixed string and stores it in an MxString object. More... | |
Protected Attributes | |
FILE * | m_file |
C runtime file pointer backing storage. More... | |
![]() | |
LegoU8 | m_mode |
File open/access mode. More... | |
Additional Inherited Members | |
![]() | |
enum | OpenFlags { c_read = 1 , c_write = 2 , c_text = 4 } |
File open mode flags for storage operations. More... | |
Implementation of LegoStorage for file-backed storage using stdio FILE*.
[AI]
Provides read/write operations using C file I/O, tracks current file pointer position. [AI]
Definition at line 387 of file legostorage.h.
LegoFile::LegoFile | ( | ) |
Default constructor initializes with NULL file pointer.
[AI]
Definition at line 36 of file legostorage.cpp.
|
override |
|
overridevirtual |
Gets the current file pointer position relative to beginning.
[AI]
p_position | Reference to store file position [AI] |
Implements LegoStorage.
Definition at line 74 of file legostorage.cpp.
LegoResult LegoFile::Open | ( | const char * | p_name, |
LegoU32 | p_mode | ||
) |
Opens a file with given name and mode, closing existing file if needed.
[AI]
p_name | Path to file [AI] |
p_mode | Bitwise OR of OpenFlags bits indicating mode [AI] |
See OpenFlags for allowed modes: c_read, c_write, c_text. [AI]
Definition at line 100 of file legostorage.cpp.
|
overridevirtual |
Reads bytes from file at current position.
[AI]
p_buffer | Output buffer to receive bytes [AI] |
p_size | Number of bytes to read [AI] |
Implements LegoStorage.
Definition at line 50 of file legostorage.cpp.
|
overridevirtual |
Sets the current file pointer position.
[AI]
p_position | New absolute file pointer position [AI] |
Implements LegoStorage.
Definition at line 88 of file legostorage.cpp.
|
overridevirtual |
Writes bytes to file at current position.
[AI]
p_buffer | Input buffer containing bytes to write [AI] |
p_size | Number of bytes to write [AI] |
Implements LegoStorage.
Definition at line 62 of file legostorage.cpp.
|
protected |