aboutsummaryrefslogtreecommitdiff
path: root/CPP/7zip/Archive/7z/7zFolderInStream.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--CPP/7zip/Archive/7z/7zFolderInStream.h31
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
37public: 41public:
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}}