|
| | cStreamStackOut (cStreamOutput *pStreamOut=nullptr, size_t nSizeBuffer=cStream::k_FILE_BLOCK_SIZE) |
| |
| virtual HRESULT | WriteX (const void *pData, size_t nDataSize) override=0 |
| |
| | cStreamQueue (size_t nGrowSizeChunk=4 *1024, size_t nGrowSizeMax=cHeap::k_ALLOC_MAX) noexcept |
| |
| | ~cStreamQueue () |
| |
| virtual HRESULT | ReadX (void *pData, size_t nDataSize) override |
| |
| virtual HRESULT | ReadPeek (void *pData, size_t nDataSize) override |
| |
| virtual size_t | SetSeekSizeMin (size_t nSizeMin=k_FILE_BLOCK_SIZE) 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 STREAM_POS_t | GetPosition () const override |
| |
| void | SeekToBegin () |
| |
| STREAM_POS_t | SeekToEnd () |
| |
| | 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) |
| |
| virtual | ~cStreamBase () |
| |
| void | SeekToBegin () |
| |
| STREAM_POS_t | SeekToEnd () |
| |
| | 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 () |
| |
| | cQueueBytes (size_t nGrowSizeChunk=8 *1024, size_t nGrowSizeMax=cHeap::k_ALLOC_MAX) noexcept |
| |
| | ~cQueueBytes () |
| |
| bool | InsertDataHead (const BYTE *pDataSrc, size_t iLen) |
| |
| bool | SetAllData (const BYTE *pData, size_t iLen) |
| |
| | cQueueDyn (ITERATE_t nGrowSizeChunk=128, ITERATE_t nGrowSizeMax=(cHeap::k_ALLOC_MAX/sizeof(BYTE))) noexcept |
| |
| | ~cQueueDyn () |
| |
| void | put_GrowSizeChunk (ITERATE_t nGrowSizeChunk) noexcept |
| |
| ITERATE_t | get_GrowSizeChunk () const noexcept |
| |
| bool | MakeWritePrepared (ITERATE_t iDesiredCount=1) |
| |
| BYTE * | GetWritePrepared (ITERATE_t iDesiredCount=1) |
| |
| bool | WriteQ (BYTE val) |
| |
| void | WriteQ (cQueueRead< BYTE > &queue) |
| |
| HRESULT | WriteQty (const BYTE *pVal, ITERATE_t iCount) |
| |
| HRESULT | WriteX (const void *pData, size_t nDataSize) |
| |
| | cQueueRW () noexcept |
| |
| | cQueueRW (TYPE *pData, ITERATE_t iDataAlloc, ITERATE_t iReadLast, ITERATE_t iWriteLast, ITERATE_t iAutoReadCommit=0) |
| |
| | cQueueRW (const TYPE *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 (TYPE *pData, ITERATE_t iDataMaxQty) |
| |
| HRESULT | ReadX (void *pData, size_t nDataSize) |
| |
| bool | isFullQ () const |
| |
| ITERATE_t | get_WriteQty () const |
| |
| TYPE * | get_WritePtr () const |
| |
| HRESULT | WriteQty (const TYPE *pData, ITERATE_t iQtyMax) |
| |
| HRESULT | WriteX (const void *pData, size_t nDataSize) |
| |
| void | AdvanceWrite (ITERATE_t iCount=1) |
| |
| | cQueueRead (const BYTE *pData=nullptr, ITERATE_t iReadLast=0, ITERATE_t iWriteLast=0) noexcept |
| |
| | ~cQueueRead () |
| |
| const BYTE * | get_ReadPtr () const |
| |
| void | SetQueueRead (const BYTE *pData, ITERATE_t iReadLast=0, ITERATE_t iWriteLast=0) |
| |
| BYTE | Read1 (void) |
| |
| HRESULT | ReadPeek (BYTE *pData, ITERATE_t iDataMaxQty) |
| |
| HRESULT | ReadQty (BYTE *pData, ITERATE_t iDataMaxQty) |
| |
| void | ReadCommitNow () |
| |
| | 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) |
| |
Stack of output streams. Acts like a codec, compressor, cipher, etc. This output stream will process data and push it along to another output stream via m_pOut->WriteX().
- Note
- WriteX() MUST take all data passed to it and cQueueRW it up if it cant process immediately. ASSUME derived class overrides WriteX and calls WriteFlush