Home | History | Annotate | Download | only in Common
      1 // Common/C_FileIO.h
      2 
      3 #ifndef __COMMON_C_FILEIO_H
      4 #define __COMMON_C_FILEIO_H
      5 
      6 #include <stdio.h>
      7 #include <sys/types.h>
      8 
      9 #include "Types.h"
     10 #include "MyWindows.h"
     11 
     12 namespace NC {
     13 namespace NFile {
     14 namespace NIO {
     15 
     16 class CFileBase
     17 {
     18 protected:
     19   int _handle;
     20   bool OpenBinary(const char *name, int flags);
     21 public:
     22   CFileBase(): _handle(-1) {};
     23   ~CFileBase() { Close(); }
     24   bool Close();
     25   bool GetLength(UInt64 &length) const;
     26   off_t Seek(off_t distanceToMove, int moveMethod) const;
     27 };
     28 
     29 class CInFile: public CFileBase
     30 {
     31 public:
     32   bool Open(const char *name);
     33   bool OpenShared(const char *name, bool shareForWrite);
     34   ssize_t Read(void *data, size_t size);
     35 };
     36 
     37 class COutFile: public CFileBase
     38 {
     39 public:
     40   bool Create(const char *name, bool createAlways);
     41   bool Open(const char *name, DWORD creationDisposition);
     42   ssize_t Write(const void *data, size_t size);
     43 };
     44 
     45 }}}
     46 
     47 #endif
     48