]> git.tdb.fi Git - libs/core.git/blobdiff - source/file.h
Drop copyright and license notices from files
[libs/core.git] / source / file.h
index f2271d02623c439dcd1385af35beb4d4c4fc841f..6353a4626c5461036ffd4a935d15b12b0efbffbc 100644 (file)
@@ -1,14 +1,10 @@
-/* $Id$
-
-This file is part of libmspio
-Copyright © 2007 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
 #ifndef MSP_IO_FILE_H_
 #define MSP_IO_FILE_H_
 
 #include <string>
 #include "base.h"
+#include "buffered.h"
+#include "filtered.h"
 #include "seek.h"
 
 namespace Msp {
@@ -24,12 +20,12 @@ class File: public Base
 public:
        enum CreateMode
        {
-               C_NONE=0,
-               C_CREATE=1,
-               C_TRUNCATE=2
+               C_NONE = 0,
+               C_CREATE = 1,
+               C_TRUNCATE = 2
        };
 
-       File(const std::string &, Mode=M_READ, CreateMode =CreateMode(C_CREATE+C_TRUNCATE));
+       File(const std::string &, Mode = M_READ, CreateMode =CreateMode(C_CREATE+C_TRUNCATE));
 
        void close();
 
@@ -47,18 +43,21 @@ private:
        Handle handle;
 
        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)
-{ return File::CreateMode((int)m|(int)n); }
+{ return File::CreateMode(static_cast<int>(m)|static_cast<int>(n)); }
 
 inline File::CreateMode operator&(File::CreateMode m, File::CreateMode n)
-{ return File::CreateMode((int)m&(int)n); }
+{ return File::CreateMode(static_cast<int>(m)&static_cast<int>(n)); }
 
 inline File::CreateMode operator~(File::CreateMode m)
-{ return File::CreateMode(~(int)m); }
+{ return File::CreateMode(~static_cast<int>(m)); }
+
+typedef Filtered<File, Buffered> BufferedFile;
 
 } // namespace IO
 } // namespace Msp