// Common/C_FileIO.h #ifndef __COMMON_C_FILEIO_H #define __COMMON_C_FILEIO_H #include <stdio.h> #include <sys/types.h> #include "MyTypes.h" #include "MyWindows.h" #ifdef _WIN32 #ifdef _MSC_VER typedef size_t ssize_t; #endif #endif namespace NC { namespace NFile { namespace NIO { class CFileBase { protected: int _handle; bool OpenBinary(const char *name, int flags); public: CFileBase(): _handle(-1) {}; ~CFileBase() { Close(); } bool Close(); bool GetLength(UInt64 &length) const; off_t Seek(off_t distanceToMove, int moveMethod) const; }; class CInFile: public CFileBase { public: bool Open(const char *name); bool OpenShared(const char *name, bool shareForWrite); ssize_t Read(void *data, size_t size); }; class COutFile: public CFileBase { public: bool Create(const char *name, bool createAlways); bool Open(const char *name, DWORD creationDisposition); ssize_t Write(const void *data, size_t size); }; }}} #endif