diff options
Diffstat (limited to '')
-rw-r--r-- | CPP/7zip/Archive/7z/7zFolderInStream.h | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/CPP/7zip/Archive/7z/7zFolderInStream.h b/CPP/7zip/Archive/7z/7zFolderInStream.h index 805db54..f054e68 100644 --- a/CPP/7zip/Archive/7z/7zFolderInStream.h +++ b/CPP/7zip/Archive/7z/7zFolderInStream.h | |||
@@ -23,21 +23,37 @@ class CFolderInStream: | |||
23 | UInt64 _pos; | 23 | UInt64 _pos; |
24 | UInt32 _crc; | 24 | UInt32 _crc; |
25 | bool _size_Defined; | 25 | bool _size_Defined; |
26 | bool _times_Defined; | ||
26 | UInt64 _size; | 27 | UInt64 _size; |
28 | FILETIME _cTime; | ||
29 | FILETIME _aTime; | ||
30 | FILETIME _mTime; | ||
31 | UInt32 _attrib; | ||
27 | 32 | ||
28 | const UInt32 *_indexes; | ||
29 | unsigned _numFiles; | 33 | unsigned _numFiles; |
30 | unsigned _index; | 34 | const UInt32 *_indexes; |
31 | 35 | ||
32 | CMyComPtr<IArchiveUpdateCallback> _updateCallback; | 36 | CMyComPtr<IArchiveUpdateCallback> _updateCallback; |
33 | 37 | ||
34 | HRESULT OpenStream(); | 38 | HRESULT OpenStream(); |
35 | void AddFileInfo(bool isProcessed); | 39 | HRESULT AddFileInfo(bool isProcessed); |
36 | 40 | ||
37 | public: | 41 | public: |
38 | CRecordVector<bool> Processed; | 42 | CRecordVector<bool> Processed; |
39 | CRecordVector<UInt32> CRCs; | 43 | CRecordVector<UInt32> CRCs; |
40 | CRecordVector<UInt64> Sizes; | 44 | CRecordVector<UInt64> Sizes; |
45 | CRecordVector<UInt64> CTimes; | ||
46 | CRecordVector<UInt64> ATimes; | ||
47 | CRecordVector<UInt64> MTimes; | ||
48 | CRecordVector<UInt32> Attribs; | ||
49 | CRecordVector<bool> TimesDefined; | ||
50 | |||
51 | bool Need_CTime; | ||
52 | bool Need_ATime; | ||
53 | bool Need_MTime; | ||
54 | bool Need_Attrib; | ||
55 | |||
56 | // CMyComPtr<IArchiveUpdateCallbackArcProp> _reportArcProp; | ||
41 | 57 | ||
42 | MY_UNKNOWN_IMP2(ISequentialInStream, ICompressGetSubStreamSize) | 58 | MY_UNKNOWN_IMP2(ISequentialInStream, ICompressGetSubStreamSize) |
43 | STDMETHOD(Read)(void *data, UInt32 size, UInt32 *processedSize); | 59 | STDMETHOD(Read)(void *data, UInt32 size, UInt32 *processedSize); |
@@ -45,7 +61,7 @@ public: | |||
45 | 61 | ||
46 | void Init(IArchiveUpdateCallback *updateCallback, const UInt32 *indexes, unsigned numFiles); | 62 | void Init(IArchiveUpdateCallback *updateCallback, const UInt32 *indexes, unsigned numFiles); |
47 | 63 | ||
48 | bool WasFinished() const { return _index == _numFiles; } | 64 | bool WasFinished() const { return Processed.Size() == _numFiles; } |
49 | 65 | ||
50 | UInt64 GetFullSize() const | 66 | UInt64 GetFullSize() const |
51 | { | 67 | { |
@@ -54,6 +70,13 @@ public: | |||
54 | size += Sizes[i]; | 70 | size += Sizes[i]; |
55 | return size; | 71 | return size; |
56 | } | 72 | } |
73 | |||
74 | CFolderInStream(): | ||
75 | Need_CTime(false), | ||
76 | Need_ATime(false), | ||
77 | Need_MTime(false), | ||
78 | Need_Attrib(false) | ||
79 | {} | ||
57 | }; | 80 | }; |
58 | 81 | ||
59 | }} | 82 | }} |