Open 3D Engine AzCore API Reference 23.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
AZ::IO::ByteContainerStream< ContainerType > Class Template Reference

Inherits AZ::IO::GenericStream.

Public Member Functions

 ByteContainerStream (ContainerType *buffer, size_t maxGrowSize=5 *1024 *1024)
 
bool Open (ContainerType &buffer, size_t maxGrowSize=5 *1024 *1024)
 
bool IsOpen () const override
 
bool CanSeek () const override
 
bool CanRead () const override
 
bool CanWrite () const override
 
SizeType GetCurPos () const override
 
SizeType GetLength () const override
 
void Seek (OffsetType bytes, SeekMode mode) override
 
SizeType Read (SizeType bytes, void *oBuffer) override
 
SizeType Write (SizeType bytes, const void *iBuffer) override
 
SizeType WriteFromStream (SizeType bytes, GenericStream *inputStream) override
 
template<typename T >
SizeType Write (const T *iBuffer)
 
void Truncate ()
 
ContainerType * GetData () const
 
bool ReOpen () override
 
void Close () override
 
- Public Member Functions inherited from AZ::IO::GenericStream
virtual bool IsOpen () const =0
 
virtual bool CanSeek () const =0
 
virtual bool CanRead () const =0
 
virtual bool CanWrite () const =0
 
virtual void Seek (OffsetType bytes, SeekMode mode)=0
 
virtual SizeType Read (SizeType bytes, void *oBuffer)=0
 
virtual SizeType Write (SizeType bytes, const void *iBuffer)=0
 
virtual SizeType WriteFromStream (SizeType bytes, GenericStream *inputStream)
 
virtual SizeType GetCurPos () const =0
 
virtual SizeType GetLength () const =0
 
virtual SizeType ReadAtOffset (SizeType bytes, void *oBuffer, OffsetType offset=-1)
 
virtual SizeType WriteAtOffset (SizeType bytes, const void *iBuffer, OffsetType offset=-1)
 
virtual bool IsCompressed () const
 
virtual const char * GetFilename () const
 
virtual OpenMode GetModeFlags () const
 
virtual bool ReOpen ()
 
virtual void Close ()
 

Protected Member Functions

SizeType PrepareToWrite (SizeType bytes)
 
template<typename T >
SizeType Write (SizeType bytes, const void *iBuffer, typename T::type)
 
template<typename T >
SizeType WriteFromStream (SizeType bytes, GenericStream *inputStream, typename T::type)
 
template<typename T >
SizeType Write (SizeType, const void *, unsigned int)
 
template<typename T >
SizeType WriteFromStream (SizeType, GenericStream *, unsigned int)
 
- Protected Member Functions inherited from AZ::IO::GenericStream
SizeType ComputeSeekPosition (OffsetType bytes, SeekMode mode)
 

Protected Attributes

ContainerType * m_buffer {}
 
size_t m_pos {}
 
size_t m_maxGrowSize {}
 
bool m_opened { false }
 Used to track if the ByteContainerStream has received a Close() call.
 

Additional Inherited Members

- Public Types inherited from AZ::IO::GenericStream
enum  SeekMode { ST_SEEK_BEGIN , ST_SEEK_CUR , ST_SEEK_END }
 
- Static Public Attributes inherited from AZ::IO::GenericStream
static constexpr size_t StreamToStreamCopyBufferSize = 256
 

Member Function Documentation

◆ CanRead()

template<typename ContainerType >
bool AZ::IO::ByteContainerStream< ContainerType >::CanRead ( ) const
inlineoverridevirtual

Implements AZ::IO::GenericStream.

◆ CanSeek()

template<typename ContainerType >
bool AZ::IO::ByteContainerStream< ContainerType >::CanSeek ( ) const
inlineoverridevirtual

Implements AZ::IO::GenericStream.

◆ CanWrite()

template<typename ContainerType >
bool AZ::IO::ByteContainerStream< ContainerType >::CanWrite ( ) const
inlineoverridevirtual

Implements AZ::IO::GenericStream.

◆ Close()

template<typename ContainerType >
void AZ::IO::ByteContainerStream< ContainerType >::Close ( )
inlineoverridevirtual

Reimplemented from AZ::IO::GenericStream.

◆ GetCurPos()

template<typename ContainerType >
SizeType AZ::IO::ByteContainerStream< ContainerType >::GetCurPos ( ) const
inlineoverridevirtual

Implements AZ::IO::GenericStream.

◆ GetLength()

template<typename ContainerType >
SizeType AZ::IO::ByteContainerStream< ContainerType >::GetLength ( ) const
inlineoverridevirtual

Implements AZ::IO::GenericStream.

◆ IsOpen()

template<typename ContainerType >
bool AZ::IO::ByteContainerStream< ContainerType >::IsOpen ( ) const
inlineoverridevirtual

Implements AZ::IO::GenericStream.

◆ Read()

template<typename ContainerType >
SizeType AZ::IO::ByteContainerStream< ContainerType >::Read ( SizeType  bytes,
void *  oBuffer 
)
overridevirtual

Implements AZ::IO::GenericStream.

◆ ReOpen()

template<typename ContainerType >
bool AZ::IO::ByteContainerStream< ContainerType >::ReOpen ( )
inlineoverridevirtual

Reimplemented from AZ::IO::GenericStream.

◆ Seek()

template<typename ContainerType >
void AZ::IO::ByteContainerStream< ContainerType >::Seek ( OffsetType  bytes,
SeekMode  mode 
)
overridevirtual

Implements AZ::IO::GenericStream.

◆ Write()

template<typename ContainerType >
SizeType AZ::IO::ByteContainerStream< ContainerType >::Write ( SizeType  bytes,
const void *  iBuffer 
)
overridevirtual

Implements AZ::IO::GenericStream.

◆ WriteFromStream()

template<typename ContainerType >
SizeType AZ::IO::ByteContainerStream< ContainerType >::WriteFromStream ( SizeType  bytes,
GenericStream inputStream 
)
overridevirtual

Alternate version of Write that can read data directly from an input stream instead of a pre-populated buffer. Stream classes should override the default implementation if they have their own internal pre-allocated buffer that can be passed into the inputStream for direct population without the need for an intermediate buffer.

Reimplemented from AZ::IO::GenericStream.


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