1#include <qpro/common.h>
4#include "qpro/stream.h"
15QpIStream::QpIStream( unsigned char* pBuffer, unsigned int pLen)
16 : cBuffer(pBuffer), cLen(pLen)
18 cByteArray.setRawData( ( char*)cBuffer, ( int) cLen );
20 cBuf.setBuffer( cByteArray );
21 cBuf.open( IO_ReadOnly );
24 setByteOrder(TQDataStream::LittleEndian);
27QpIStream::~QpIStream()
29 cByteArray.resetRawData( ( char*)cBuffer, ( int) cLen );
42QpIStream::QpIStream( const char* pFileName)
47 filebuf* lFileBuf = new filebuf;
49 cStreamBuf = lFileBuf;
51 lFileBuf->open(pFileName, ios::in);
53 if( lFileBuf->is_open())
55 cIn = new istream(cStreamBuf);
59QpIStream::QpIStream( unsigned char* pBuffer, unsigned int pLen)
64 cStreamBuf = new std::stringbuf (( char*)(pBuffer));
66 cIn = new istream(cStreamBuf);
69QpIStream::~QpIStream()
83 if( (cIn==0) || cIn->rdstate())
88 if((lResult=cIn->get()) == EOF)
91 cIn->clear(ios::eofbit|ios::failbit);
102QpIStream::read( char* pBuf, TQP_INT16 pLen)
106 cIn->read(pBuf, pLen);
112QpIStream::operator void* ()
121QpIStream::operator !()
123 return ( cIn ? !*cIn : -1 );
128QpIStream::operator >> (TQP_INT8 &pI8)
136QpIStream::operator >> (TQP_UINT8 &pI8)
144QpIStream::operator >> (TQP_INT16 &pI16)
147 pI16 = pI16 | (get() << 8);
153QpIStream::operator >> (TQP_INT32 &pI32)
156 pI32 = pI32 | (get() << 8);
157 pI32 = pI32 | (get() << 16);
158 pI32 = pI32 | (get() << 24);
164QpIStream::operator >> (TQP_INT64 &pI64)
200QpIStream::operator >> ( char*& pStr)
205 char* lStr = new char[lMax];
207 while( cIn->get(lStr[lIdx]), lStr[lIdx] != '\0' && cIn->good() )
212 char* lNew = new char[lMax];
214 memcpy(lNew, lStr, lIdx);
|