• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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:
CFileBase()22   CFileBase(): _handle(-1) {};
~CFileBase()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