3 This file is part of libmspio
4 Copyright © 2007 Mikko Rasa, Mikkosoft Productions
5 Distributed under the LGPL
20 A class for reading and writing files.
22 Non-blocking mode is not supported on Win32.
24 class File: public Base
34 File(const std::string &, Mode = M_READ, CreateMode =CreateMode(C_CREATE+C_TRUNCATE));
42 virtual int seek(int, SeekType);
43 virtual int tell() const;
45 virtual Handle get_event_handle() { return handle; }
51 void check_access(Mode) const;
53 virtual unsigned do_write(const char *, unsigned);
54 virtual unsigned do_read(char *, unsigned);
57 inline File::CreateMode operator|(File::CreateMode m, File::CreateMode n)
58 { return File::CreateMode(static_cast<int>(m)|static_cast<int>(n)); }
60 inline File::CreateMode operator&(File::CreateMode m, File::CreateMode n)
61 { return File::CreateMode(static_cast<int>(m)&static_cast<int>(n)); }
63 inline File::CreateMode operator~(File::CreateMode m)
64 { return File::CreateMode(~static_cast<int>(m)); }
66 typedef Filtered<File, Buffered> BufferedFile;