Open 3D Engine AzCore API Reference 25.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 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 charGetFilename () const
 
virtual OpenMode GetModeFlags () const
 

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: