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>