#include <string>
#include "base.h"
+#include "buffered.h"
+#include "filtered.h"
#include "seek.h"
namespace Msp {
void close();
void set_block(bool);
- void enable_events();
- void sync();
+ virtual void sync();
- int seek(int, SeekType);
- int tell() const;
+ virtual int seek(int, SeekType);
+ virtual int tell() const;
- Handle get_event_handle() { return handle; }
+ virtual Handle get_event_handle() { return handle; }
- ~File();
+ virtual ~File();
private:
Handle handle;
- void check_access(Mode) const;
- unsigned do_write(const char *, unsigned);
- unsigned do_read(char *, unsigned);
+ void check_access(Mode) const;
+protected:
+ virtual unsigned do_write(const char *, unsigned);
+ virtual unsigned do_read(char *, unsigned);
};
inline File::CreateMode operator|(File::CreateMode m, File::CreateMode n)
inline File::CreateMode operator~(File::CreateMode m)
{ return File::CreateMode(~(int)m); }
+typedef Filtered<File, Buffered> BufferedFile;
+
} // namespace IO
} // namespace Msp