#if !defined(__MemStream_h)
#define __MemStream_h
#include <stdio.h>

class TMemStream
{
private:
char *MainBuf;
int Cursor, mSize;
protected:
 int MoveMainBuf(int);
public:
  TMemStream(void){MainBuf=0; Cursor=0; mSize=0;};
  TMemStream(char *,int);
  ~TMemStream(void){if(MainBuf) delete MainBuf;};
  void Reset(void);
  int GetSize(void){return mSize;};
  int GetDataSize(void){return Cursor;};
  int SetSize(int);
  char *GetMainPointer(void){return MainBuf;};
  char *GetPointer(void){return (MainBuf+Cursor);};
  char *IncPointer(int Cur)
   {char* a=0;if(mSize>(Cur+Cursor)){Cursor+=Cur; a=(MainBuf+Cursor);} return a;};
  char *SetPointer(int Cur)
   {char* a=0;if(mSize>Cur){Cursor=Cur; a=(MainBuf+Cur);} return a;};
  void LoadFromStream(char *,int);
  int Read(char *,int);
  void Write(char *,int);
  char *GetFitsStr(int);
  int ReadString(char *,int);
  int LoadFromFile(char *);
  int SaveToFile(char *);
  int SaveToFile(FILE *);
  int gets(char*,int nn=80);
};

#endif
