| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- // Common/C_FileIO.h
- #ifndef __COMMON_C_FILEIO_H
- #define __COMMON_C_FILEIO_H
- #include <stdio.h>
- #include <sys/types.h>
- #include "Types.h"
- #include "MyWindows.h"
- 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
|