/*
* Copyright (C) 2000-2001 Marc Wandschneider <mw@kiltdown.org>
*
* 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_
syntax highlighted by Code2HTML, v. 0.9.1