xref: /aosp_15_r20/external/lzma/CPP/7zip/UI/Common/Extract.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker // Extract.h
2*f6dc9357SAndroid Build Coastguard Worker 
3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_EXTRACT_H
4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_EXTRACT_H
5*f6dc9357SAndroid Build Coastguard Worker 
6*f6dc9357SAndroid Build Coastguard Worker #include "../../../Windows/FileFind.h"
7*f6dc9357SAndroid Build Coastguard Worker 
8*f6dc9357SAndroid Build Coastguard Worker #include "../../Archive/IArchive.h"
9*f6dc9357SAndroid Build Coastguard Worker 
10*f6dc9357SAndroid Build Coastguard Worker #include "ArchiveExtractCallback.h"
11*f6dc9357SAndroid Build Coastguard Worker #include "ArchiveOpenCallback.h"
12*f6dc9357SAndroid Build Coastguard Worker #include "ExtractMode.h"
13*f6dc9357SAndroid Build Coastguard Worker #include "Property.h"
14*f6dc9357SAndroid Build Coastguard Worker 
15*f6dc9357SAndroid Build Coastguard Worker #include "../Common/LoadCodecs.h"
16*f6dc9357SAndroid Build Coastguard Worker 
17*f6dc9357SAndroid Build Coastguard Worker struct CExtractOptionsBase
18*f6dc9357SAndroid Build Coastguard Worker {
19*f6dc9357SAndroid Build Coastguard Worker   CBoolPair ElimDup;
20*f6dc9357SAndroid Build Coastguard Worker 
21*f6dc9357SAndroid Build Coastguard Worker   bool ExcludeDirItems;
22*f6dc9357SAndroid Build Coastguard Worker   bool ExcludeFileItems;
23*f6dc9357SAndroid Build Coastguard Worker 
24*f6dc9357SAndroid Build Coastguard Worker   bool PathMode_Force;
25*f6dc9357SAndroid Build Coastguard Worker   bool OverwriteMode_Force;
26*f6dc9357SAndroid Build Coastguard Worker   NExtract::NPathMode::EEnum PathMode;
27*f6dc9357SAndroid Build Coastguard Worker   NExtract::NOverwriteMode::EEnum OverwriteMode;
28*f6dc9357SAndroid Build Coastguard Worker   NExtract::NZoneIdMode::EEnum ZoneMode;
29*f6dc9357SAndroid Build Coastguard Worker 
30*f6dc9357SAndroid Build Coastguard Worker   CExtractNtOptions NtOptions;
31*f6dc9357SAndroid Build Coastguard Worker 
32*f6dc9357SAndroid Build Coastguard Worker   FString OutputDir;
33*f6dc9357SAndroid Build Coastguard Worker   UString HashDir;
34*f6dc9357SAndroid Build Coastguard Worker 
CExtractOptionsBaseCExtractOptionsBase35*f6dc9357SAndroid Build Coastguard Worker   CExtractOptionsBase():
36*f6dc9357SAndroid Build Coastguard Worker       ExcludeDirItems(false),
37*f6dc9357SAndroid Build Coastguard Worker       ExcludeFileItems(false),
38*f6dc9357SAndroid Build Coastguard Worker       PathMode_Force(false),
39*f6dc9357SAndroid Build Coastguard Worker       OverwriteMode_Force(false),
40*f6dc9357SAndroid Build Coastguard Worker       PathMode(NExtract::NPathMode::kFullPaths),
41*f6dc9357SAndroid Build Coastguard Worker       OverwriteMode(NExtract::NOverwriteMode::kAsk),
42*f6dc9357SAndroid Build Coastguard Worker       ZoneMode(NExtract::NZoneIdMode::kNone)
43*f6dc9357SAndroid Build Coastguard Worker       {}
44*f6dc9357SAndroid Build Coastguard Worker };
45*f6dc9357SAndroid Build Coastguard Worker 
46*f6dc9357SAndroid Build Coastguard Worker struct CExtractOptions: public CExtractOptionsBase
47*f6dc9357SAndroid Build Coastguard Worker {
48*f6dc9357SAndroid Build Coastguard Worker   bool StdInMode;
49*f6dc9357SAndroid Build Coastguard Worker   bool StdOutMode;
50*f6dc9357SAndroid Build Coastguard Worker   bool YesToAll;
51*f6dc9357SAndroid Build Coastguard Worker   bool TestMode;
52*f6dc9357SAndroid Build Coastguard Worker 
53*f6dc9357SAndroid Build Coastguard Worker   // bool ShowDialog;
54*f6dc9357SAndroid Build Coastguard Worker   // bool PasswordEnabled;
55*f6dc9357SAndroid Build Coastguard Worker   // UString Password;
56*f6dc9357SAndroid Build Coastguard Worker   #ifndef Z7_SFX
57*f6dc9357SAndroid Build Coastguard Worker   CObjectVector<CProperty> Properties;
58*f6dc9357SAndroid Build Coastguard Worker   #endif
59*f6dc9357SAndroid Build Coastguard Worker 
60*f6dc9357SAndroid Build Coastguard Worker   /*
61*f6dc9357SAndroid Build Coastguard Worker   #ifdef Z7_EXTERNAL_CODECS
62*f6dc9357SAndroid Build Coastguard Worker   CCodecs *Codecs;
63*f6dc9357SAndroid Build Coastguard Worker   #endif
64*f6dc9357SAndroid Build Coastguard Worker   */
65*f6dc9357SAndroid Build Coastguard Worker 
CExtractOptionsCExtractOptions66*f6dc9357SAndroid Build Coastguard Worker   CExtractOptions():
67*f6dc9357SAndroid Build Coastguard Worker       StdInMode(false),
68*f6dc9357SAndroid Build Coastguard Worker       StdOutMode(false),
69*f6dc9357SAndroid Build Coastguard Worker       YesToAll(false),
70*f6dc9357SAndroid Build Coastguard Worker       TestMode(false)
71*f6dc9357SAndroid Build Coastguard Worker       {}
72*f6dc9357SAndroid Build Coastguard Worker };
73*f6dc9357SAndroid Build Coastguard Worker 
74*f6dc9357SAndroid Build Coastguard Worker struct CDecompressStat
75*f6dc9357SAndroid Build Coastguard Worker {
76*f6dc9357SAndroid Build Coastguard Worker   UInt64 NumArchives;
77*f6dc9357SAndroid Build Coastguard Worker   UInt64 UnpackSize;
78*f6dc9357SAndroid Build Coastguard Worker   UInt64 AltStreams_UnpackSize;
79*f6dc9357SAndroid Build Coastguard Worker   UInt64 PackSize;
80*f6dc9357SAndroid Build Coastguard Worker   UInt64 NumFolders;
81*f6dc9357SAndroid Build Coastguard Worker   UInt64 NumFiles;
82*f6dc9357SAndroid Build Coastguard Worker   UInt64 NumAltStreams;
83*f6dc9357SAndroid Build Coastguard Worker 
ClearCDecompressStat84*f6dc9357SAndroid Build Coastguard Worker   void Clear()
85*f6dc9357SAndroid Build Coastguard Worker   {
86*f6dc9357SAndroid Build Coastguard Worker     NumArchives = UnpackSize = AltStreams_UnpackSize = PackSize = NumFolders = NumFiles = NumAltStreams = 0;
87*f6dc9357SAndroid Build Coastguard Worker   }
88*f6dc9357SAndroid Build Coastguard Worker };
89*f6dc9357SAndroid Build Coastguard Worker 
90*f6dc9357SAndroid Build Coastguard Worker HRESULT Extract(
91*f6dc9357SAndroid Build Coastguard Worker     // DECL_EXTERNAL_CODECS_LOC_VARS
92*f6dc9357SAndroid Build Coastguard Worker     CCodecs *codecs,
93*f6dc9357SAndroid Build Coastguard Worker     const CObjectVector<COpenType> &types,
94*f6dc9357SAndroid Build Coastguard Worker     const CIntVector &excludedFormats,
95*f6dc9357SAndroid Build Coastguard Worker     UStringVector &archivePaths, UStringVector &archivePathsFull,
96*f6dc9357SAndroid Build Coastguard Worker     const NWildcard::CCensorNode &wildcardCensor,
97*f6dc9357SAndroid Build Coastguard Worker     const CExtractOptions &options,
98*f6dc9357SAndroid Build Coastguard Worker     IOpenCallbackUI *openCallback,
99*f6dc9357SAndroid Build Coastguard Worker     IExtractCallbackUI *extractCallback,
100*f6dc9357SAndroid Build Coastguard Worker     IFolderArchiveExtractCallback *faeCallback,
101*f6dc9357SAndroid Build Coastguard Worker     #ifndef Z7_SFX
102*f6dc9357SAndroid Build Coastguard Worker     IHashCalc *hash,
103*f6dc9357SAndroid Build Coastguard Worker     #endif
104*f6dc9357SAndroid Build Coastguard Worker     UString &errorMessage,
105*f6dc9357SAndroid Build Coastguard Worker     CDecompressStat &st);
106*f6dc9357SAndroid Build Coastguard Worker 
107*f6dc9357SAndroid Build Coastguard Worker #endif
108