diff options
Diffstat (limited to 'src/libs/7zip/win/CPP/7zip/Archive/Hfs/HfsIn.h')
-rw-r--r-- | src/libs/7zip/win/CPP/7zip/Archive/Hfs/HfsIn.h | 154 |
1 files changed, 0 insertions, 154 deletions
diff --git a/src/libs/7zip/win/CPP/7zip/Archive/Hfs/HfsIn.h b/src/libs/7zip/win/CPP/7zip/Archive/Hfs/HfsIn.h deleted file mode 100644 index c19539057..000000000 --- a/src/libs/7zip/win/CPP/7zip/Archive/Hfs/HfsIn.h +++ /dev/null @@ -1,154 +0,0 @@ -// HfsIn.h - -#ifndef __ARCHIVE_HFS_IN_H -#define __ARCHIVE_HFS_IN_H - -#include "Common/MyString.h" -#include "Common/Buffer.h" - -namespace NArchive { -namespace NHfs { - -struct CExtent -{ - UInt32 Pos; - UInt32 NumBlocks; -}; - -struct CFork -{ - UInt64 Size; - // UInt32 ClumpSize; - UInt32 NumBlocks; - CExtent Extents[8]; - void Parse(const Byte *p); -}; - -struct CVolHeader -{ - Byte Header[2]; - UInt16 Version; - // UInt32 Attr; - // UInt32 LastMountedVersion; - // UInt32 JournalInfoBlock; - - UInt32 CTime; - UInt32 MTime; - // UInt32 BackupTime; - // UInt32 CheckedTime; - - // UInt32 NumFiles; - // UInt32 NumFolders; - int BlockSizeLog; - UInt32 NumBlocks; - UInt32 NumFreeBlocks; - - // UInt32 WriteCount; - // UInt32 FinderInfo[8]; - // UInt64 VolID; - - // CFork AllocationFile; - CFork ExtentsFile; - CFork CatalogFile; - // CFork AttributesFile; - // CFork StartupFile; - - bool IsHfsX() const { return Version > 4; } -}; - -inline void HfsTimeToFileTime(UInt32 hfsTime, FILETIME &ft) -{ - UInt64 v = ((UInt64)3600 * 24 * (365 * 303 + 24 * 3) + hfsTime) * 10000000; - ft.dwLowDateTime = (DWORD)v; - ft.dwHighDateTime = (DWORD)(v >> 32); -} - -enum ERecordType -{ - RECORD_TYPE_FOLDER = 1, - RECORD_TYPE_FILE = 2, - RECORD_TYPE_FOLDER_THREAD = 3, - RECORD_TYPE_FILE_THREAD = 4 -}; - -struct CItem -{ - UString Name; - - UInt32 ParentID; - - UInt16 Type; - // UInt16 Flags; - // UInt32 Valence; - UInt32 ID; - UInt32 CTime; - UInt32 MTime; - // UInt32 AttrMTime; - UInt32 ATime; - // UInt32 BackupDate; - - /* - UInt32 OwnerID; - UInt32 GroupID; - Byte AdminFlags; - Byte OwnerFlags; - UInt16 FileMode; - union - { - UInt32 iNodeNum; - UInt32 LinkCount; - UInt32 RawDevice; - } special; - */ - - UInt64 Size; - UInt32 NumBlocks; - CRecordVector<CExtent> Extents; - - bool IsDir() const { return Type == RECORD_TYPE_FOLDER; } - CItem(): Size(0), NumBlocks(0) {} -}; - -struct CIdIndexPair -{ - UInt32 ID; - int Index; -}; - -struct CProgressVirt -{ - virtual HRESULT SetTotal(UInt64 numFiles) PURE; - virtual HRESULT SetCompleted(UInt64 numFiles) PURE; -}; - -class CDatabase -{ - // CObjectVector<CIdExtents> FileExtents; - // CObjectVector<CIdExtents> ResExtents; - CRecordVector<CIdIndexPair> IdToIndexMap; - - HRESULT LoadExtentFile(IInStream *inStream); - HRESULT LoadCatalog(IInStream *inStream, CProgressVirt *progress); - - HRESULT ReadFile(const CFork &fork, CByteBuffer &buf, IInStream *inStream); -public: - CVolHeader Header; - CObjectVector<CItem> Items; - // bool CaseSensetive; - - void Clear() - { - // CaseSensetive = false; - Items.Clear(); - // FileExtents.Clear(); - // ResExtents.Clear(); - IdToIndexMap.Clear(); - } - - UString GetItemPath(int index) const; - HRESULT Open(IInStream *inStream, CProgressVirt *progress); -}; - -}} - -#endif |