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

#include <cFileTextReader.h>

Inheritance diagram for Gray::cStreamTextReader:
Gray::cStreamStackInp Gray::cStreamQueue Gray::cStream Gray::cQueueBytes Gray::cStreamInput Gray::cStreamOutput Gray::cQueueDyn< BYTE > Gray::cStreamBase Gray::cStreamBase Gray::cQueueRW< TYPE > Gray::cQueueRead< BYTE > Gray::cQueueBase

Public Member Functions

virtual HRESULT ReadStringLine (OUT char *pszBuffer, StrLen_t iSizeMax) override
 
virtual STREAM_SEEKRET_t Seek (STREAM_OFFSET_t iOffset, SEEK_ORIGIN_TYPE eSeekOrigin=SEEK_Set) override
 Disambiguate Seek for cStreamBase to cStreamInput for stupid compiler. More...
 
- Public Member Functions inherited from Gray::cStreamStackInp
 cStreamStackInp (cStreamInput *pStreamInp=nullptr, size_t nSizeMaxBuffer=cStream::k_FILE_BLOCK_SIZE) noexcept
 
- Public Member Functions inherited from Gray::cStreamQueue
 cStreamQueue (size_t nGrowSizeChunk=4 *1024, size_t nGrowSizeMax=cHeap::k_ALLOC_MAX) noexcept
 
 ~cStreamQueue ()
 
virtual HRESULT ReadPeek (void *pData, size_t nDataSize) override
 
virtual size_t SetSeekSizeMin (size_t nSizeMin=k_FILE_BLOCK_SIZE) override
 
virtual STREAM_POS_t GetLength () const 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 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::cQueueBytes
 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)
 
- Public Member Functions inherited from Gray::cQueueDyn< BYTE >
 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)
 
- Public Member Functions inherited from Gray::cQueueRW< TYPE >
 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
 
TYPEget_WritePtr () const
 
HRESULT WriteQty (const TYPE *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< BYTE >
 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 ()
 
- 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)
 

Protected Member Functions

 cStreamTextReader (cStreamInput &reader, size_t nSizeLineMax)
 
virtual HRESULT ReadX (void *pData, size_t nDataSize) override
 
virtual HRESULT WriteX (const void *pData, size_t nDataSize) override
 
HRESULT ReadStringLine (OUT const char **ppszLine)
 
- Protected Member Functions inherited from Gray::cStreamStackInp
HRESULT ReadFill ()
 
HRESULT ReadFillAligned (size_t nSizeBlockAlign=1)
 
- Protected Member Functions inherited from Gray::cStreamQueue
 cStreamQueue (const cStreamQueue &a) noexcept
 
- Protected Member Functions inherited from Gray::cQueueDyn< BYTE >
bool AllocSizeMaxQ (ITERATE_t iDataAlloc)
 
- Protected Member Functions inherited from Gray::cQueueRW< TYPE >
void WriteQN (const TYPE *pData, ITERATE_t iQtyMax)
 

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 Attributes inherited from Gray::cStreamStackInp
cStreamInputm_pStreamInp
 source input stream. called by ReadFill() More...
 
- Protected Attributes inherited from Gray::cQueueDyn< BYTE >
ITERATE_t m_nGrowSizeChunk
 number of TYPE elements to grow by in a single re-alloc chunk. 0 = never grow. More...
 
ITERATE_t m_nGrowSizeMax
 Total arbitrary max allowed for m_iDataSizeAlloc. 0 = never grow. More...
 
- Protected Attributes inherited from Gray::cQueueRW< TYPE >
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< BYTE >
BYTE * m_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...
 

Constructor & Destructor Documentation

◆ cStreamTextReader()

Gray::cStreamTextReader::cStreamTextReader ( cStreamInput reader,
size_t  nSizeLineMax 
)
inlineprotected

Member Function Documentation

◆ ReadStringLine() [1/2]

HRESULT Gray::cStreamTextReader::ReadStringLine ( OUT char *  pszBuffer,
StrLen_t  iSizeMax 
)
overridevirtual
  • iSizeMax = Maximum number of characters to be copied into pszBuffer (including room for the the terminating '\0' character).
    Returns
    length of the string read in chars. (includes \r
    ) (not including null)

Reimplemented from Gray::cStreamInput.

◆ ReadStringLine() [2/2]

HRESULT Gray::cStreamTextReader::ReadStringLine ( OUT const char **  ppszLine)
protected

Read a line of text. like fgets(). Read up until (including) newline character =
= The newline character, if read, is included in the string. like .NET StreamReader.ReadLine

Returns
length of the string read in chars. (includes \r
) (not including null) 0 = EOF (legit end of file). < 0 = other error

◆ ReadX()

virtual HRESULT Gray::cStreamTextReader::ReadX ( void *  pData,
size_t  nDataSize 
)
inlineoverrideprotectedvirtual

Implements Gray::cStreamStackInp.

◆ Seek()

STREAM_SEEKRET_t Gray::cStreamTextReader::Seek ( STREAM_OFFSET_t  iOffset,
SEEK_ORIGIN_TYPE  eSeekOrigin = SEEK_Set 
)
overridevirtual

Disambiguate Seek for cStreamBase to cStreamInput for stupid compiler.

  • eSeekOrigin = // SEEK_SET ?
    Returns
    the New position, -1=FAILED

Reimplemented from Gray::cStreamQueue.

◆ WriteX()

virtual HRESULT Gray::cStreamTextReader::WriteX ( const void *  pData,
size_t  nDataSize 
)
inlineoverrideprotectedvirtual

Reimplemented from Gray::cStreamQueue.


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