00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __DATASTRM_H__
00020 #define __DATASTRM_H__
00021
00022 struct iDataBuffer;
00023
00028 class csDataStream
00029 {
00030 private:
00031 uint8 *Data;
00032 int Position, Size;
00033 bool DeleteBuffer;
00034
00035 public:
00037 csDataStream (void *buf, int Size, bool DeleteBuffer = true);
00039 ~csDataStream ();
00040
00042 int GetPosition ();
00044 void SetPosition (int pos);
00046 int GetLength ();
00048 bool Finished ();
00050 void Skip (int num);
00051
00053 int Read (void *buf, int NumBytes);
00054
00056 bool ReadInt8 (int8 &val);
00058 bool ReadUInt8 (uint8 &val);
00060 bool ReadInt16 (int16 &val);
00062 bool ReadUInt16 (uint16 &val);
00064 bool ReadInt32 (int32 &val);
00066 bool ReadUInt32 (uint32 &val);
00067
00069 int GetChar ();
00071 int LookChar ();
00072
00077 bool GetString (char* buf, int len, bool OmitNewline = true);
00081 int ReadTextInt ();
00085 float ReadTextFloat ();
00089 void SkipWhitespace ();
00090 };
00091
00092 #endif // __DATASTRM_H__