123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- #ifndef H_BINIO_BINFILE
- #define H_BINIO_BINFILE
- #include <stdio.h>
- #include "binio.h"
- #ifdef _MSC_VER
- #pragma warning (disable:4244)
- #pragma warning (disable:4996)
- #endif
- class binfbase: virtual public binio {
- public:
- typedef enum {
- Append = 1 << 0,
- NoCreate = 1 << 1
- } ModeFlags;
- typedef int Mode;
- binfbase();
- virtual ~binfbase();
- virtual void open(const char *filename, const Mode mode) = 0;
- #if BINIO_ENABLE_STRING
- virtual void open(const std::string &filename, const Mode mode) = 0;
- #endif
- void close();
- virtual void seek(long pos, Offset offs = Set);
- virtual long pos();
- protected:
- FILE *f;
- };
- class binifstream: public binistream, virtual public binfbase {
- public:
- binifstream();
- binifstream(const char *filename, const Mode mode = NoCreate);
- #if BINIO_ENABLE_STRING
- binifstream(const std::string &filename, const Mode mode = NoCreate);
- #endif
- virtual ~binifstream();
- virtual void open(const char *filename, const Mode mode = NoCreate);
- #if BINIO_ENABLE_STRING
- virtual void open(const std::string &filename, const Mode mode = NoCreate);
- #endif
- protected:
- virtual Byte getByte();
- };
- class binofstream: public binostream, virtual public binfbase {
- public:
- binofstream();
- binofstream(const char *filename, const Mode mode = 0);
- #if BINIO_ENABLE_STRING
- binofstream(const std::string &filename, const Mode mode = 0);
- #endif
- virtual ~binofstream();
- virtual void open(const char *filename, const Mode mode = 0);
- #if BINIO_ENABLE_STRING
- virtual void open(const std::string &filename, const Mode mode = 0);
- #endif
- protected:
- virtual void putByte(Byte b);
- };
- class binfstream: public binifstream, public binofstream {
- public:
- binfstream();
- binfstream(const char *filename, const Mode mode = 0);
- #if BINIO_ENABLE_STRING
- binfstream(const std::string &filename, const Mode mode = 0);
- #endif
- virtual ~binfstream();
- virtual void open(const char *filename, const Mode mode = 0);
- #if BINIO_ENABLE_STRING
- virtual void open(const std::string &filename, const Mode mode = 0);
- #endif
- };
- #endif
|