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::GenericStream Class Referenceabstract

Inherited by AZ::IO::ByteContainerStream< AZStd::vector< char > >, AZ::Data::AssetDataStream, AZ::IO::ByteContainerStream< ContainerType >, AZ::IO::CompressorStream, AZ::IO::FileIOStream, AZ::IO::MemoryStream, AZ::IO::StdoutStream, and AZ::IO::SystemFileStream.

Public Types

enum  SeekMode { ST_SEEK_BEGIN , ST_SEEK_CUR , ST_SEEK_END }
 

Public Member Functions

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 ()
 

Static Public Attributes

static constexpr size_t StreamToStreamCopyBufferSize = 256
 

Protected Member Functions

SizeType ComputeSeekPosition (OffsetType bytes, SeekMode mode)
 

Member Function Documentation

◆ GetLength()

virtual SizeType AZ::IO::GenericStream::GetLength ( ) const
pure virtual

Implemented in AZ::IO::CompressorStream.

◆ WriteFromStream()

virtual SizeType AZ::IO::GenericStream::WriteFromStream ( SizeType  bytes,
GenericStream inputStream 
)
virtual

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 in AZ::IO::ByteContainerStream< ContainerType >, AZ::IO::ByteContainerStream< AZStd::vector< char > >, and AZ::IO::MemoryStream.


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