Nebula
Loading...
Searching...
No Matches
IO::BinaryWriter Class Reference

#include <binarywriter.h>

Detailed Description

A friendly interface for writing binary data to a stream.

Optionally the writer can use memory mapping for optimal write performance.

Todo
convert endianess!

Inherits IO::StreamWriter.

Public Member Functions

 BinaryWriter ()
 constructor
 
virtual ~BinaryWriter ()
 destructor
 
void SetMemoryMappingEnabled (bool b)
 call before Open() to enable memory mapping (if stream supports mapping)
 
bool IsMemoryMappingEnabled () const
 return true if memory mapping is enabled
 
void SetStreamByteOrder (System::ByteOrder::Type byteOrder)
 set the stream byte order (default is host byte order)
 
System::ByteOrder::Type GetStreamByteOrder () const
 get the stream byte order
 
virtual bool Open ()
 begin reading from the stream
 
virtual void Close ()
 end reading from the stream
 
void WriteChar (char c)
 write an 8-bit char to the stream
 
void WriteUChar (unsigned char c)
 write an 8-bit unsigned char to the stream
 
void WriteShort (short s)
 write an 16-bit short to the stream
 
void WriteUShort (unsigned short s)
 write an 16-bit unsigned short to the stream
 
void WriteInt (int i)
 write an 32-bit int to the stream
 
void WriteUInt (unsigned int i)
 write an 32-bit unsigned int to the stream
 
void WriteInt64 (int64_t i)
 write an 64-bit signed int to the stream
 
void WriteUInt64 (uint64_t i)
 write an 64-bit unsigned int to the stream
 
void WriteFloat (float f)
 write a float value to the stream

 
void WriteFloatAsNormalizedUByte2 (float f)
 write a compressed float value to the stream, lossy and needed to be in the range of -1.0 and +1.0
 
void WriteFloatAsUnsignedNormalizedUByte2 (float f)
 write a compressed float value to the stream, lossy and needed to be in the range of 0.0 and +1.0
 
void WriteDouble (double d)
 write a double value to the stream
 
void WriteBool (bool b)
 write a boolean value to the stream
 
void WriteString (const Util::String &s)
 write a string to the stream
 
void WriteVec2 (Math::vec2 f)
 write a float value to the stream

 
void WriteVec3 (const Math::vec3 &v)
 write a vec4 to the stream
 
void WriteVec4 (const Math::vec4 &v)
 write a vec4 to the stream
 
void WriteMat4 (const Math::mat4 &m)
 write a mat4 to the stream
 
void WriteFloatArray (const Util::Array< float > &arr)
 write a float array to the stream
 
void WriteIntArray (const Util::Array< int > &arr)
 write a int array to the stream
 
void WriteUIntArray (const Util::Array< uint > &arr)
 write a unsigned int array to the stream
 
void WriteBoolArray (const Util::Array< bool > &arr)
 write a bool array to the stream
 
void WriteGuid (const Util::Guid &guid)
 write a guid
 
void WriteBlob (const Util::Blob &blob)
 write a blob of data
 
void WriteRawData (const void *ptr, SizeT numBytes)
 write raw data
 
- Public Member Functions inherited from IO::StreamWriter
 StreamWriter ()
 constructor
 
virtual ~StreamWriter ()
 destructor
 
void SetStream (const Ptr< Stream > &s)
 set stream to write to
 
const Ptr< Stream > & GetStream () const
 get currently set stream
 
bool HasStream () const
 return true if a stream is set
 
bool IsOpen () const
 return true if currently open
 
- Public Member Functions inherited from Core::RefCounted
 RefCounted ()
 constructor
 
int GetRefCount () const
 get the current refcount
 
void AddRef ()
 increment refcount by one
 
void Release ()
 decrement refcount and destroy object if refcount is zero
 
bool IsInstanceOf (const Rtti &rtti) const
 return true if this object is instance of given class
 
bool IsInstanceOf (const Util::String &className) const
 return true if this object is instance of given class by string
 
bool IsInstanceOf (const Util::FourCC &classFourCC) const
 return true if this object is instance of given class by fourcc
 
bool IsA (const Rtti &rtti) const
 return true if this object is instance of given class, or a derived class
 
bool IsA (const Util::String &rttiName) const
 return true if this object is instance of given class, or a derived class, by string
 
bool IsA (const Util::FourCC &rttiFourCC) const
 return true if this object is instance of given class, or a derived class, by fourcc
 
const Util::StringGetClassName () const
 get the class name
 
Util::FourCC GetClassFourCC () const
 get the class FourCC code
 

Public Attributes

bool enableMapping
 
bool isMapped
 
System::ByteOrder byteOrder
 
unsigned char * mapCursor
 
unsigned char * mapEnd
 

Private Member Functions

 __DeclareClass (BinaryWriter)
 

Additional Inherited Members

- Static Public Member Functions inherited from Core::RefCounted
static void DumpRefCountingLeaks ()
 dump refcounting leaks, call at end of application (NEBULA_DEBUG builds only!)
 
- Protected Member Functions inherited from Core::RefCounted
virtual ~RefCounted ()
 destructor (called when refcount reaches zero)
 
- Protected Attributes inherited from IO::StreamWriter
Ptr< Streamstream
 
bool isOpen
 
bool streamWasOpen
 

Constructor & Destructor Documentation

◆ BinaryWriter()

IO::BinaryWriter::BinaryWriter ( )

constructor

◆ ~BinaryWriter()

IO::BinaryWriter::~BinaryWriter ( )
virtual

destructor

Member Function Documentation

◆ __DeclareClass()

IO::BinaryWriter::__DeclareClass ( BinaryWriter )
private

◆ Close()

void IO::BinaryWriter::Close ( )
virtual

end reading from the stream

Reimplemented from IO::StreamWriter.

◆ GetStreamByteOrder()

System::ByteOrder::Type IO::BinaryWriter::GetStreamByteOrder ( ) const
inline

get the stream byte order

◆ IsMemoryMappingEnabled()

bool IO::BinaryWriter::IsMemoryMappingEnabled ( ) const
inline

return true if memory mapping is enabled

◆ Open()

bool IO::BinaryWriter::Open ( )
virtual

begin reading from the stream

Reimplemented from IO::StreamWriter.

◆ SetMemoryMappingEnabled()

void IO::BinaryWriter::SetMemoryMappingEnabled ( bool b)
inline

call before Open() to enable memory mapping (if stream supports mapping)

◆ SetStreamByteOrder()

void IO::BinaryWriter::SetStreamByteOrder ( System::ByteOrder::Type byteOrder)
inline

set the stream byte order (default is host byte order)

◆ WriteBlob()

void IO::BinaryWriter::WriteBlob ( const Util::Blob & blob)

write a blob of data

◆ WriteBool()

void IO::BinaryWriter::WriteBool ( bool b)

write a boolean value to the stream

◆ WriteBoolArray()

void IO::BinaryWriter::WriteBoolArray ( const Util::Array< bool > & arr)

write a bool array to the stream

◆ WriteChar()

void IO::BinaryWriter::WriteChar ( char c)

write an 8-bit char to the stream

◆ WriteDouble()

void IO::BinaryWriter::WriteDouble ( double d)

write a double value to the stream

◆ WriteFloat()

void IO::BinaryWriter::WriteFloat ( float f)

write a float value to the stream

◆ WriteFloatArray()

void IO::BinaryWriter::WriteFloatArray ( const Util::Array< float > & arr)

write a float array to the stream

◆ WriteFloatAsNormalizedUByte2()

void IO::BinaryWriter::WriteFloatAsNormalizedUByte2 ( float f)

write a compressed float value to the stream, lossy and needed to be in the range of -1.0 and +1.0

◆ WriteFloatAsUnsignedNormalizedUByte2()

void IO::BinaryWriter::WriteFloatAsUnsignedNormalizedUByte2 ( float f)

write a compressed float value to the stream, lossy and needed to be in the range of 0.0 and +1.0

◆ WriteGuid()

void IO::BinaryWriter::WriteGuid ( const Util::Guid & guid)

write a guid

◆ WriteInt()

void IO::BinaryWriter::WriteInt ( int i)

write an 32-bit int to the stream

◆ WriteInt64()

void IO::BinaryWriter::WriteInt64 ( int64_t i)

write an 64-bit signed int to the stream

◆ WriteIntArray()

void IO::BinaryWriter::WriteIntArray ( const Util::Array< int > & arr)

write a int array to the stream

◆ WriteMat4()

void IO::BinaryWriter::WriteMat4 ( const Math::mat4 & m)

write a mat4 to the stream

◆ WriteRawData()

void IO::BinaryWriter::WriteRawData ( const void * ptr,
SizeT numBytes )

write raw data

◆ WriteShort()

void IO::BinaryWriter::WriteShort ( short s)

write an 16-bit short to the stream

◆ WriteString()

void IO::BinaryWriter::WriteString ( const Util::String & s)

write a string to the stream

NOTE: for strings, first the length will be written into a 32-bit int, then the string contents without the 0-terminator.

◆ WriteUChar()

void IO::BinaryWriter::WriteUChar ( unsigned char c)

write an 8-bit unsigned char to the stream

◆ WriteUInt()

void IO::BinaryWriter::WriteUInt ( unsigned int i)

write an 32-bit unsigned int to the stream

◆ WriteUInt64()

void IO::BinaryWriter::WriteUInt64 ( uint64_t i)

write an 64-bit unsigned int to the stream

◆ WriteUIntArray()

void IO::BinaryWriter::WriteUIntArray ( const Util::Array< uint > & arr)

write a unsigned int array to the stream

◆ WriteUShort()

void IO::BinaryWriter::WriteUShort ( unsigned short s)

write an 16-bit unsigned short to the stream

◆ WriteVec2()

void IO::BinaryWriter::WriteVec2 ( Math::vec2 f)

write a float value to the stream

◆ WriteVec3()

void IO::BinaryWriter::WriteVec3 ( const Math::vec3 & v)

write a vec4 to the stream

◆ WriteVec4()

void IO::BinaryWriter::WriteVec4 ( const Math::vec4 & v)

write a vec4 to the stream

Member Data Documentation

◆ byteOrder

System::ByteOrder IO::BinaryWriter::byteOrder

◆ enableMapping

bool IO::BinaryWriter::enableMapping

◆ isMapped

bool IO::BinaryWriter::isMapped

◆ mapCursor

unsigned char* IO::BinaryWriter::mapCursor

◆ mapEnd

unsigned char* IO::BinaryWriter::mapEnd

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