Open 3D Engine GridMate API Reference  2205.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
GridMate::WriteBuffer Class Referenceabstract

#include <Buffer.h>

Inherited by GridMate::WriteBufferDynamic, GridMate::WriteBufferStatic< BufferSize >, and GridMate::WriteBufferStaticInPlace.

Classes

class  Marker
 

Public Member Functions

 WriteBuffer (EndianType endianType)
 
const AZ_FORCE_INLINE char * Get () const
 
AZ_FORCE_INLINE void Clear ()
 
AZ_FORCE_INLINE AZStd::size_t Size () const
 
AZ_FORCE_INLINE PackedSize GetExactSize () const
 
AZ_FORCE_INLINE EndianType GetEndianType () const
 
AZ_FORCE_INLINE void SetEndianType (EndianType endianType)
 
virtual void WriteRaw (const void *data, PackedSize size)
 
virtual void WriteRawBit (bool data)
 
virtual void WriteFromBuffer (ReadBuffer &rb, PackedSize size)
 
template<typename Type >
AZ_FORCE_INLINE Marker< Type, Marshaler< Type > > InsertMarker ()
 Insert a marker in the stream, so you can later overwrite this value conveniently.
 
template<typename Type , typename MarshalerType >
AZ_FORCE_INLINE Marker< Type, MarshalerType > InsertMarker ()
 Insert a marker in the stream, so you can later overwrite this value conveniently.
 
template<typename Type >
AZ_FORCE_INLINE Marker< Type, Marshaler< Type > > InsertMarker (const Type &val)
 Insert a marker in the stream, and write in an initial value.
 
template<typename Type , typename MarshalerType >
AZ_FORCE_INLINE Marker< Type, MarshalerType > InsertMarker (const Type &val)
 Insert a marker in the stream, and write in an initial value.
 
template<typename Type >
AZ_FORCE_INLINE void WriteWithByteAlignment (const Type &pod)
 Writes the data that starts at the beginning of a byte.
 
template<typename Type >
AZ_FORCE_INLINE void Write (const Type &pod)
 Write data to the stream. Data must be copy constructible (to perform endian swap).
 
template<typename Type , typename MarshalerType >
AZ_FORCE_INLINE void Write (const Type &pod, MarshalerType &&marshaler)
 Write data to the stream. Data must be copy constructible (to perform endian swap).
 

Protected Member Functions

virtual void * Allocate (size_t byteSize, size_t alignment)=0
 
virtual void DeAllocate (void *ptr, size_t byteSize, size_t alignment)=0
 
void Destroy ()
 
void Grow (size_t growSize)
 

Protected Attributes

char * m_data
 
PackedSize m_size
 
PackedSize m_capacity
 
EndianType m_endianType
 

Detailed Description

Base class for write buffers. It's a base class because we implement different memory allocators as children.

Assuming that write buffers always start on the byte boundary, i.e. they aren't asked to write with a starting bit offset.


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