Isle
Loading...
Searching...
No Matches
LegoFile Class Reference

Implementation of LegoStorage for file-backed storage using stdio FILE*. More...

#include <legostorage.h>

Inheritance diagram for LegoFile:
Collaboration diagram for LegoFile:

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...
 
- Public Member Functions inherited from LegoStorage
 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...
 
LegoStorageWriteString (const char *p_data)
 Writes a length-prefixed string to storage. More...
 
LegoStorageWriteU8 (LegoU8 p_data)
 Writes an 8-bit unsigned value to storage. More...
 
LegoStorageWriteS16 (LegoS16 p_data)
 Writes a 16-bit signed value to storage. More...
 
LegoStorageWriteU16 (LegoU16 p_data)
 Writes a 16-bit unsigned value to storage. More...
 
LegoStorageWriteS32 (MxS32 p_data)
 Writes a 32-bit signed value to storage. More...
 
LegoStorageWriteU32 (MxU32 p_data)
 Writes a 32-bit unsigned value to storage. More...
 
LegoStorageWriteFloat (LegoFloat p_data)
 Writes a floating-point (single-precision) value to storage. More...
 
LegoStorageWriteVector (Mx3DPointFloat p_data)
 Writes a 3D vector (three floats) to storage. More...
 
LegoStorageWriteMxString (MxString p_data)
 Writes a length-prefixed MxString to storage. More...
 
LegoStorageReadString (char *p_data)
 Reads a length-prefixed string from storage. More...
 
LegoStorageReadU8 (LegoU8 &p_data)
 Reads an 8-bit unsigned value from storage. More...
 
LegoStorageReadS16 (LegoS16 &p_data)
 Reads a 16-bit signed value from storage. More...
 
LegoStorageReadU16 (LegoU16 &p_data)
 Reads a 16-bit unsigned value from storage. More...
 
LegoStorageReadS32 (MxS32 &p_data)
 Reads a 32-bit signed value from storage. More...
 
LegoStorageReadU32 (MxU32 &p_data)
 Reads a 32-bit unsigned value from storage. More...
 
LegoStorageReadFloat (LegoFloat &p_data)
 Reads a floating-point (single-precision) value from storage. More...
 
LegoStorageReadVector (Mx3DPointFloat &p_data)
 Reads a 3D vector (three floats) from storage. More...
 
LegoStorageReadMxString (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...
 
- Protected Attributes inherited from LegoStorage
LegoU8 m_mode
 File open/access mode. More...
 

Additional Inherited Members

- Public Types inherited from LegoStorage
enum  OpenFlags { c_read = 1 , c_write = 2 , c_text = 4 }
 File open mode flags for storage operations. More...
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ LegoFile()

LegoFile::LegoFile ( )

Default constructor initializes with NULL file pointer.

[AI]

Definition at line 36 of file legostorage.cpp.

◆ ~LegoFile()

LegoFile::~LegoFile ( )
override

Destructor.

Closes file if open. [AI]

Definition at line 42 of file legostorage.cpp.

Member Function Documentation

◆ GetPosition()

LegoResult LegoFile::GetPosition ( LegoU32 p_position)
overridevirtual

Gets the current file pointer position relative to beginning.

[AI]

Parameters
p_positionReference to store file position [AI]
Returns
SUCCESS if file is open, FAILURE otherwise [AI]

Implements LegoStorage.

Definition at line 74 of file legostorage.cpp.

◆ Open()

LegoResult LegoFile::Open ( const char *  p_name,
LegoU32  p_mode 
)

Opens a file with given name and mode, closing existing file if needed.

[AI]

Parameters
p_namePath to file [AI]
p_modeBitwise OR of OpenFlags bits indicating mode [AI]

See OpenFlags for allowed modes: c_read, c_write, c_text. [AI]

Returns
SUCCESS if file was opened successfully, FAILURE if not [AI]

Definition at line 100 of file legostorage.cpp.

◆ Read()

LegoResult LegoFile::Read ( void *  p_buffer,
LegoU32  p_size 
)
overridevirtual

Reads bytes from file at current position.

[AI]

Parameters
p_bufferOutput buffer to receive bytes [AI]
p_sizeNumber of bytes to read [AI]
Returns
SUCCESS if all requested bytes read, FAILURE otherwise [AI]

Implements LegoStorage.

Definition at line 50 of file legostorage.cpp.

◆ SetPosition()

LegoResult LegoFile::SetPosition ( LegoU32  p_position)
overridevirtual

Sets the current file pointer position.

[AI]

Parameters
p_positionNew absolute file pointer position [AI]
Returns
SUCCESS if successful, FAILURE otherwise [AI]

Implements LegoStorage.

Definition at line 88 of file legostorage.cpp.

◆ Write()

LegoResult LegoFile::Write ( const void *  p_buffer,
LegoU32  p_size 
)
overridevirtual

Writes bytes to file at current position.

[AI]

Parameters
p_bufferInput buffer containing bytes to write [AI]
p_sizeNumber of bytes to write [AI]
Returns
SUCCESS if all requested bytes written, FAILURE otherwise [AI]

Implements LegoStorage.

Definition at line 62 of file legostorage.cpp.

Member Data Documentation

◆ m_file

FILE* LegoFile::m_file
protected

C runtime file pointer backing storage.

[AI]

Definition at line 445 of file legostorage.h.


The documentation for this class was generated from the following files: