Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
Gray::cStreamStatic Class Reference

#include <cStreamQueue.h>

Inheritance diagram for Gray::cStreamStatic:
Gray::cStream Gray::cQueueRW< BYTE > Gray::cStreamInput Gray::cStreamOutput Gray::cQueueRead< TYPE > Gray::cStreamBase Gray::cStreamBase Gray::cQueueBase Gray::cStreamStringA

Public Member Functions

 cStreamStatic ()
 
 cStreamStatic (void *pData, size_t iDataMax, size_t iReadLast, size_t iWriteLast, size_t iAutoReadCommit=0)
 
 cStreamStatic (const void *pData, size_t iDataMax)
 
 cStreamStatic (const cMemBlock &m)
 
 cStreamStatic (const cStreamStatic &a)
 
 ~cStreamStatic ()
 
virtual size_t SetSeekSizeMin (size_t nSizeMin) override
 
virtual STREAM_SEEKRET_t Seek (STREAM_OFFSET_t offset, SEEK_ORIGIN_TYPE eSeekOrigin=SEEK_Set) override
 Disambiguate Seek for cStreamBase to cStreamInput for stupid compiler. More...
 
virtual STREAM_POS_t GetLength () const override
 
virtual HRESULT WriteX (const void *pData, size_t nDataSize) override
 
virtual HRESULT ReadX (void *pData, size_t nDataSize) override
 
virtual HRESULT ReadPeek (void *pData, size_t nDataSize) override
 
- Public Member Functions inherited from Gray::cStream
virtual STREAM_POS_t GetPosition () const override
 
void SeekToBegin ()
 
STREAM_POS_t SeekToEnd ()
 
- Public Member Functions inherited from Gray::cStreamInput
 cStreamInput () noexcept
 
virtual ~cStreamInput ()
 
virtual HRESULT ReadX (OUT void *pData, size_t nDataSize)
 
HRESULT ReadAll (OUT cHeapBlock &block, size_t nSizeExtra=0)
 
virtual HRESULT ReadStringLine (OUT char *pszBuffer, StrLen_t iSizeMax)
 
virtual HRESULT ReadStringLine (OUT wchar_t *pszBuffer, StrLen_t iSizeMax)
 
HRESULT ReadT (OUT void *pVal, size_t nSize)
 
template<typename TYPE >
HRESULT ReadT (OUT TYPE &val)
 
template<typename TYPE >
HRESULT ReadTN (OUT TYPE &val)
 
HRESULT ReadSize (OUT size_t &nSize)
 
template<typename TYPE >
HRESULT ReadSizeT (OUT TYPE &n)
 
HRESULT ReadHashCode (OUT UINT32 &nHashCode)
 
HRESULT ReadHashCode (OUT UINT64 &nHashCode)
 
HRESULT ReadN (OUT BYTE *pBuffer, size_t nSizeMax)
 
template<typename _CH >
HRESULT ReadStringN (OUT _CH *pszStr, StrLen_t iSizeMax)
 
- Public Member Functions inherited from Gray::cStreamBase
virtual ~cStreamBase ()
 
void SeekToBegin ()
 
STREAM_POS_t SeekToEnd ()
 
- Public Member Functions inherited from Gray::cStreamOutput
 cStreamOutput () noexcept
 
virtual ~cStreamOutput ()
 
HRESULT WriteT (const void *pVal, size_t nDataSize)
 
template<typename TYPE >
HRESULT WriteT (TYPE val)
 
HRESULT WriteSize (size_t nSize)
 
HRESULT WriteHashCode (HASHCODE_t nHashCode)
 
HRESULT WriteN (const void *pBuffer, size_t nSize)
 
template<typename _CH >
HRESULT WriteStringN (const _CH *pszStr)
 
template<typename _CH >
HRESULT WriteCharRepeat (_CH nChar, int nCount=1)
 
virtual HRESULT WriteString (const char *pszStr)
 
virtual HRESULT WriteString (const wchar_t *pszStr)
 
StrLen_t VPrintf (const char *pszFormat, va_list args)
 
StrLen_t VPrintf (const wchar_t *pszFormat, va_list args)
 
StrLen_t _cdecl Printf (const char *pszFormat,...)
 
StrLen_t _cdecl Printf (const wchar_t *pszFormat,...)
 
HRESULT WriteStream (cStreamInput &sInp, STREAM_POS_t nSizeMax=k_FILE_BLOCK_SIZE, IStreamProgressCallback *pProgress=nullptr, TIMESYSD_t nTimeout=0)
 Copy cStreamInput to this stream. More...
 
virtual HRESULT FlushX ()
 
- Public Member Functions inherited from Gray::cQueueRW< BYTE >
 cQueueRW () noexcept
 
 cQueueRW (BYTE *pData, ITERATE_t iDataAlloc, ITERATE_t iReadLast, ITERATE_t iWriteLast, ITERATE_t iAutoReadCommit=0)
 
 cQueueRW (const BYTE *pData, ITERATE_t iDataMax)
 
 ~cQueueRW ()
 
void ReadCommitCheck ()
 
ITERATE_t get_AutoReadCommit () const
 
void put_AutoReadCommit (ITERATE_t iAutoReadCommit=8 *1024)
 
void put_ReadIndex (ITERATE_t iReadLo)
 
STREAM_SEEKRET_t SeekQ (STREAM_OFFSET_t iOffset, SEEK_ORIGIN_TYPE eSeekOrigin=SEEK_Set)
 
HRESULT ReadQty (BYTE *pData, ITERATE_t iDataMaxQty)
 
HRESULT ReadX (void *pData, size_t nDataSize)
 
bool isFullQ () const
 
ITERATE_t get_WriteQty () const
 
BYTE * get_WritePtr () const
 
HRESULT WriteQty (const BYTE *pData, ITERATE_t iQtyMax)
 
HRESULT WriteX (const void *pData, size_t nDataSize)
 
void AdvanceWrite (ITERATE_t iCount=1)
 
- Public Member Functions inherited from Gray::cQueueRead< TYPE >
 cQueueRead (const TYPE *pData=nullptr, ITERATE_t iReadLast=0, ITERATE_t iWriteLast=0) noexcept
 
 ~cQueueRead ()
 
const TYPEget_ReadPtr () const
 
void SetQueueRead (const TYPE *pData, ITERATE_t iReadLast=0, ITERATE_t iWriteLast=0)
 
TYPE Read1 (void)
 
HRESULT ReadPeek (TYPE *pData, ITERATE_t iDataMaxQty)
 
HRESULT ReadQty (TYPE *pData, ITERATE_t iDataMaxQty)
 
void ReadCommitNow ()
 
- Public Member Functions inherited from Gray::cQueueBase
 cQueueBase (ITERATE_t iReadLast=0, ITERATE_t iWriteLast=0) noexcept
 
void InitQ (ITERATE_t iReadLast=0, ITERATE_t iWriteLast=0) noexcept
 
bool isEmptyQ () const noexcept
 
void EmptyQ () noexcept
 
ITERATE_t get_ReadIndex () const noexcept
 
ITERATE_t get_WriteIndex () const noexcept
 
ITERATE_t get_ReadQty () const
 
void AdvanceRead (ITERATE_t iCount=1)
 
STREAM_SEEKRET_t SeekQ (STREAM_OFFSET_t iOffset, SEEK_ORIGIN_TYPE eSeekOrigin=SEEK_Set)
 

Additional Inherited Members

- Static Public Attributes inherited from Gray::cStreamBase
static const BYTE k_SIZE_MASK = 0x80
 Used for WriteSize() More...
 
static const size_t k_FILE_BLOCK_SIZE = (32 * 1024)
 default arbitrary transfer block size. more than this is NOT more efficient. More...
 
- Protected Member Functions inherited from Gray::cQueueRW< BYTE >
void WriteQN (const BYTE *pData, ITERATE_t iQtyMax)
 
- Protected Attributes inherited from Gray::cQueueRW< BYTE >
ITERATE_t m_iDataSizeAlloc
 The max qty we can write into m_pData. Maybe NOT exactly same as m_pData true OS allocated size? More...
 
ITERATE_t m_iAutoReadCommit
 Read data is destroyed once read more than this amount. make more room for writing. 0 = don't do this, just fail write if we run out of space. More...
 
- Protected Attributes inherited from Gray::cQueueRead< TYPE >
TYPEm_pData
 NOT owned/managed block of memory I read from. not freed on destruct. More...
 
- Protected Attributes inherited from Gray::cQueueBase
ITERATE_t m_iReadLast
 old items removed/read from here. More...
 
ITERATE_t m_iWriteLast
 new items added/written here. end of read. More...
 

Detailed Description

Read and write to a single preallocated memory block as cStream. Data block is pre-allocated and provided. DO NOT grow the memory allocation if needed.

Constructor & Destructor Documentation

◆ cStreamStatic() [1/5]

Gray::cStreamStatic::cStreamStatic ( )
inlineexplicit

Empty Read Only 0.

◆ cStreamStatic() [2/5]

Gray::cStreamStatic::cStreamStatic ( void *  pData,
size_t  iDataMax,
size_t  iReadLast,
size_t  iWriteLast,
size_t  iAutoReadCommit = 0 
)
inlineexplicit

Read/Write

◆ cStreamStatic() [3/5]

Gray::cStreamStatic::cStreamStatic ( const void *  pData,
size_t  iDataMax 
)
inlineexplicit

Used to serve a memory string as a cStream. AKA StringStream or StreamString. Read Only iDataMax.

◆ cStreamStatic() [4/5]

Gray::cStreamStatic::cStreamStatic ( const cMemBlock m)
inlineexplicit

Used to serve a memory string as a cStream. AKA StringStream or StreamString. Read Only m.get_Size().

◆ cStreamStatic() [5/5]

Gray::cStreamStatic::cStreamStatic ( const cStreamStatic a)
inline

do nothing! copy ??

◆ ~cStreamStatic()

Gray::cStreamStatic::~cStreamStatic ( )
inline

Member Function Documentation

◆ GetLength()

virtual STREAM_POS_t Gray::cStreamStatic::GetLength ( ) const
inlineoverridevirtual

Get the full Seek-able length. not just get_ReadQty() left to read. Assume Seek(0) read length.

Reimplemented from Gray::cStream.

◆ ReadPeek()

virtual HRESULT Gray::cStreamStatic::ReadPeek ( void *  pData,
size_t  nDataSize 
)
inlineoverridevirtual

Reimplemented from Gray::cStreamInput.

◆ ReadX()

virtual HRESULT Gray::cStreamStatic::ReadX ( void *  pData,
size_t  nDataSize 
)
inlineoverridevirtual

◆ Seek()

virtual STREAM_SEEKRET_t Gray::cStreamStatic::Seek ( STREAM_OFFSET_t  iOffset,
SEEK_ORIGIN_TYPE  eSeekOrigin = SEEK_Set 
)
inlineoverridevirtual

Disambiguate Seek for cStreamBase to cStreamInput for stupid compiler.

Reimplemented from Gray::cStream.

◆ SetSeekSizeMin()

virtual size_t Gray::cStreamStatic::SetSeekSizeMin ( size_t  nSizeMin)
inlineoverridevirtual

Reimplemented from Gray::cStreamInput.

◆ WriteX()

virtual HRESULT Gray::cStreamStatic::WriteX ( const void *  pData,
size_t  nDataSize 
)
inlineoverridevirtual

Reimplemented from Gray::cStreamOutput.


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