/* * Copyright (C) 2000-2001 Marc Wandschneider * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation. * * For more information look at the file COPYRIGHT in this package * */ #ifndef _FILESTREAM_H_ class FileStream : public ICharReadStream, public IByteReadStream, public ICharWriteStream, public IByteWriteStream { public: virtual int readData(int count, char *pdata); virtual int readLine(int count, char *pdata); virtual int readChar(char *); virtual BOOL seek(SEEKPOINT, int); virtual int readData(int count, BYTE *pdata); virtual int writeData(int count, char *pdata); virtual BOOL writeLine(char *pline); virtual int writeData(int count, BYTE *pdata); /** * ILifetime */ virtual int addRef(void); virtual int release(void); /** * use me to create object !!! */ static BOOL create(char * filename, BOOL readOnly, FileStream **ppout); virtual ~FileStream(); private: FileStream(); int m_cref; FILE *m_file; BOOL m_readOnly; /** * once you've created an object, use me to open the file */ BOOL init(const char *filename); }; #define _FILESTREAM_H_ #endif // _FILESTREAM_H_