Annotation of elwix/tools/oldlzma/SRC/Windows/FileIO.h, revision 1.1.1.1
1.1 misho 1: // Windows/FileIO.h
2:
3: #ifndef __WINDOWS_FILEIO_H
4: #define __WINDOWS_FILEIO_H
5:
6: namespace NWindows {
7: namespace NFile {
8: namespace NIO {
9:
10: struct CByHandleFileInfo
11: {
12: DWORD Attributes;
13: FILETIME CreationTime;
14: FILETIME LastAccessTime;
15: FILETIME LastWriteTime;
16: DWORD VolumeSerialNumber;
17: UINT64 Size;
18: DWORD NumberOfLinks;
19: UINT64 FileIndex;
20: };
21:
22: class CFileBase
23: {
24: protected:
25: bool _fileIsOpen;
26: HANDLE _handle;
27: bool Create(LPCTSTR fileName, DWORD desiredAccess,
28: DWORD shareMode, DWORD creationDisposition, DWORD flagsAndAttributes);
29: #ifndef _UNICODE
30: bool Create(LPCWSTR fileName, DWORD desiredAccess,
31: DWORD shareMode, DWORD creationDisposition, DWORD flagsAndAttributes);
32: #endif
33:
34: public:
35: CFileBase():
36: _fileIsOpen(false){};
37: virtual ~CFileBase();
38:
39: virtual bool Close();
40:
41: bool GetPosition(UINT64 &position) const;
42: bool GetLength(UINT64 &length) const;
43:
44: bool Seek(INT64 distanceToMove, DWORD moveMethod, UINT64 &newPosition) const;
45: bool Seek(UINT64 position, UINT64 &newPosition);
46: bool SeekToBegin();
47: bool SeekToEnd(UINT64 &newPosition);
48:
49: bool GetFileInformation(CByHandleFileInfo &fileInfo) const;
50: };
51:
52: class CInFile: public CFileBase
53: {
54: public:
55: bool Open(LPCTSTR fileName, DWORD shareMode,
56: DWORD creationDisposition, DWORD flagsAndAttributes);
57: bool Open(LPCTSTR fileName);
58: #ifndef _UNICODE
59: bool Open(LPCWSTR fileName, DWORD shareMode,
60: DWORD creationDisposition, DWORD flagsAndAttributes);
61: bool Open(LPCWSTR fileName);
62: #endif
63: bool Read(void *data, UINT32 size, UINT32 &processedSize);
64: };
65:
66: class COutFile: public CFileBase
67: {
68: // DWORD m_CreationDisposition;
69: public:
70: // COutFile(): m_CreationDisposition(CREATE_NEW){};
71: bool Open(LPCTSTR fileName, DWORD shareMode,
72: DWORD creationDisposition, DWORD flagsAndAttributes);
73: bool Open(LPCTSTR fileName, DWORD creationDisposition);
74: bool Create(LPCTSTR fileName, bool createAlways);
75:
76: #ifndef _UNICODE
77: bool Open(LPCWSTR fileName, DWORD shareMode,
78: DWORD creationDisposition, DWORD flagsAndAttributes);
79: bool Open(LPCWSTR fileName, DWORD creationDisposition);
80: bool Create(LPCWSTR fileName, bool createAlways);
81: #endif
82:
83: /*
84: void SetOpenCreationDisposition(DWORD creationDisposition)
85: { m_CreationDisposition = creationDisposition; }
86: void SetOpenCreationDispositionCreateAlways()
87: { m_CreationDisposition = CREATE_ALWAYS; }
88: */
89:
90: bool SetTime(const FILETIME *creationTime,
91: const FILETIME *lastAccessTime, const FILETIME *lastWriteTime);
92: bool SetLastWriteTime(const FILETIME *lastWriteTime);
93: bool Write(const void *data, UINT32 size, UINT32 &processedSize);
94: bool SetEndOfFile();
95: bool SetLength(UINT64 length);
96: };
97:
98: }}}
99:
100: #endif
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>