stream.h
1#ifndef TQPRO_STREAM_H
2#define TQPRO_STREAM_H
3
4//#define USE_QT
5
6#ifdef USE_QT
7
8#include <tqdatastream.h>
9#include <tqbuffer.h>
10
11typedef TQ_UINT8 TQP_UINT8;
12typedef TQ_INT8 TQP_INT8;
13typedef TQ_INT16 TQP_INT16;
14typedef TQ_INT32 TQP_INT32;
15
16class QpStream : public TQDataStream
17{
18public:
19 QpStream(unsigned char* pBuffer, unsigned int pLen);
20 ~QpStream();
21
22protected:
23 TQBuffer cBuf;
24 TQByteArray cByteArray;
25
26 unsigned char* cBuffer;
27 unsigned int cLen;
28};
29
30#else
31
32#include <iostream>
33using namespace std;
34
35// ??? sort out how to do sizes
36
37typedef char TQP_INT8 ;
38typedef unsigned char TQP_UINT8 ;
39typedef short TQP_INT16 ;
40typedef int TQP_INT32 ;
41typedef double TQP_INT64 ;
42
43class QpIStream
44{
45public:
46 QpIStream(const char* pFileName);
47 QpIStream(unsigned char* pBuffer, unsigned int pLen);
48 ~QpIStream();
49
50 int get();
51
52 QpIStream& read(char* pBuf, TQP_INT16 pLen);
53
54 operator void* ();
55 int operator !();
56
57 QpIStream& operator >> (TQP_INT8 &pI8);
58 QpIStream& operator >> (TQP_UINT8 &pI8);
59 QpIStream& operator >> (TQP_INT16 &pI16);
60 QpIStream& operator >> (TQP_INT32 &pI32);
61 QpIStream& operator >> (TQP_INT64 &pI64);
62 QpIStream& operator >> (char*& pStr);
63
64protected:
65 istream* cIn;
66 long cOffset;
67 streambuf* cStreamBuf;
68};
69
70#endif
71
72#endif // TQPRO_STREAM_H