xref: /aosp_15_r20/external/lzma/CPP/7zip/UI/Common/ZipRegistry.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker // ZipRegistry.h
2*f6dc9357SAndroid Build Coastguard Worker 
3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_ZIP_REGISTRY_H
4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_ZIP_REGISTRY_H
5*f6dc9357SAndroid Build Coastguard Worker 
6*f6dc9357SAndroid Build Coastguard Worker #include "../../../Common/MyTypes.h"
7*f6dc9357SAndroid Build Coastguard Worker #include "../../../Common/MyString.h"
8*f6dc9357SAndroid Build Coastguard Worker 
9*f6dc9357SAndroid Build Coastguard Worker #include "../../Common/MethodProps.h"
10*f6dc9357SAndroid Build Coastguard Worker 
11*f6dc9357SAndroid Build Coastguard Worker #include "ExtractMode.h"
12*f6dc9357SAndroid Build Coastguard Worker 
13*f6dc9357SAndroid Build Coastguard Worker /*
14*f6dc9357SAndroid Build Coastguard Worker CBoolPair::Def in writing functions means:
15*f6dc9357SAndroid Build Coastguard Worker   if (  CBoolPair::Def ), we write CBoolPair::Val
16*f6dc9357SAndroid Build Coastguard Worker   if ( !CBoolPair::Def )
17*f6dc9357SAndroid Build Coastguard Worker   {
18*f6dc9357SAndroid Build Coastguard Worker     in NCompression functions we delete registry value
19*f6dc9357SAndroid Build Coastguard Worker     in another functions we do nothing
20*f6dc9357SAndroid Build Coastguard Worker   }
21*f6dc9357SAndroid Build Coastguard Worker */
22*f6dc9357SAndroid Build Coastguard Worker 
23*f6dc9357SAndroid Build Coastguard Worker namespace NExtract
24*f6dc9357SAndroid Build Coastguard Worker {
25*f6dc9357SAndroid Build Coastguard Worker   struct CInfo
26*f6dc9357SAndroid Build Coastguard Worker   {
27*f6dc9357SAndroid Build Coastguard Worker     NPathMode::EEnum PathMode;
28*f6dc9357SAndroid Build Coastguard Worker     NOverwriteMode::EEnum OverwriteMode;
29*f6dc9357SAndroid Build Coastguard Worker     bool PathMode_Force;
30*f6dc9357SAndroid Build Coastguard Worker     bool OverwriteMode_Force;
31*f6dc9357SAndroid Build Coastguard Worker 
32*f6dc9357SAndroid Build Coastguard Worker     CBoolPair SplitDest;
33*f6dc9357SAndroid Build Coastguard Worker     CBoolPair ElimDup;
34*f6dc9357SAndroid Build Coastguard Worker     // CBoolPair AltStreams;
35*f6dc9357SAndroid Build Coastguard Worker     CBoolPair NtSecurity;
36*f6dc9357SAndroid Build Coastguard Worker     CBoolPair ShowPassword;
37*f6dc9357SAndroid Build Coastguard Worker 
38*f6dc9357SAndroid Build Coastguard Worker     UStringVector Paths;
39*f6dc9357SAndroid Build Coastguard Worker 
40*f6dc9357SAndroid Build Coastguard Worker     void Save() const;
41*f6dc9357SAndroid Build Coastguard Worker     void Load();
42*f6dc9357SAndroid Build Coastguard Worker   };
43*f6dc9357SAndroid Build Coastguard Worker 
44*f6dc9357SAndroid Build Coastguard Worker   void Save_ShowPassword(bool showPassword);
45*f6dc9357SAndroid Build Coastguard Worker   bool Read_ShowPassword();
46*f6dc9357SAndroid Build Coastguard Worker 
47*f6dc9357SAndroid Build Coastguard Worker   void Save_LimitGB(UInt32 limit_GB);
48*f6dc9357SAndroid Build Coastguard Worker   UInt32 Read_LimitGB();
49*f6dc9357SAndroid Build Coastguard Worker }
50*f6dc9357SAndroid Build Coastguard Worker 
51*f6dc9357SAndroid Build Coastguard Worker namespace NCompression
52*f6dc9357SAndroid Build Coastguard Worker {
53*f6dc9357SAndroid Build Coastguard Worker   struct CMemUse
54*f6dc9357SAndroid Build Coastguard Worker   {
55*f6dc9357SAndroid Build Coastguard Worker     // UString Str;
56*f6dc9357SAndroid Build Coastguard Worker     bool IsDefined;
57*f6dc9357SAndroid Build Coastguard Worker     bool IsPercent;
58*f6dc9357SAndroid Build Coastguard Worker     UInt64 Val;
59*f6dc9357SAndroid Build Coastguard Worker 
CMemUseCMemUse60*f6dc9357SAndroid Build Coastguard Worker     CMemUse():
61*f6dc9357SAndroid Build Coastguard Worker       IsDefined(false),
62*f6dc9357SAndroid Build Coastguard Worker       IsPercent(false),
63*f6dc9357SAndroid Build Coastguard Worker       Val(0)
64*f6dc9357SAndroid Build Coastguard Worker       {}
65*f6dc9357SAndroid Build Coastguard Worker 
ClearCMemUse66*f6dc9357SAndroid Build Coastguard Worker     void Clear()
67*f6dc9357SAndroid Build Coastguard Worker     {
68*f6dc9357SAndroid Build Coastguard Worker       // Str.Empty();
69*f6dc9357SAndroid Build Coastguard Worker       IsDefined = false;
70*f6dc9357SAndroid Build Coastguard Worker       IsPercent = false;
71*f6dc9357SAndroid Build Coastguard Worker       Val = 0;
72*f6dc9357SAndroid Build Coastguard Worker     }
73*f6dc9357SAndroid Build Coastguard Worker 
GetBytesCMemUse74*f6dc9357SAndroid Build Coastguard Worker     UInt64 GetBytes(UInt64 ramSize) const
75*f6dc9357SAndroid Build Coastguard Worker     {
76*f6dc9357SAndroid Build Coastguard Worker       if (!IsPercent)
77*f6dc9357SAndroid Build Coastguard Worker         return Val;
78*f6dc9357SAndroid Build Coastguard Worker       return Calc_From_Val_Percents(ramSize, Val);
79*f6dc9357SAndroid Build Coastguard Worker     }
80*f6dc9357SAndroid Build Coastguard Worker     void Parse(const UString &s);
81*f6dc9357SAndroid Build Coastguard Worker   };
82*f6dc9357SAndroid Build Coastguard Worker 
83*f6dc9357SAndroid Build Coastguard Worker   struct CFormatOptions
84*f6dc9357SAndroid Build Coastguard Worker   {
85*f6dc9357SAndroid Build Coastguard Worker     UInt32 Level;
86*f6dc9357SAndroid Build Coastguard Worker     UInt32 Dictionary;
87*f6dc9357SAndroid Build Coastguard Worker     // UInt32 DictionaryChain;
88*f6dc9357SAndroid Build Coastguard Worker     UInt32 Order;
89*f6dc9357SAndroid Build Coastguard Worker     UInt32 BlockLogSize;
90*f6dc9357SAndroid Build Coastguard Worker     UInt32 NumThreads;
91*f6dc9357SAndroid Build Coastguard Worker 
92*f6dc9357SAndroid Build Coastguard Worker     UInt32 TimePrec;
93*f6dc9357SAndroid Build Coastguard Worker     CBoolPair MTime;
94*f6dc9357SAndroid Build Coastguard Worker     CBoolPair ATime;
95*f6dc9357SAndroid Build Coastguard Worker     CBoolPair CTime;
96*f6dc9357SAndroid Build Coastguard Worker     CBoolPair SetArcMTime;
97*f6dc9357SAndroid Build Coastguard Worker 
98*f6dc9357SAndroid Build Coastguard Worker     CSysString FormatID;
99*f6dc9357SAndroid Build Coastguard Worker     UString Method;
100*f6dc9357SAndroid Build Coastguard Worker     UString Options;
101*f6dc9357SAndroid Build Coastguard Worker     UString EncryptionMethod;
102*f6dc9357SAndroid Build Coastguard Worker     UString MemUse;
103*f6dc9357SAndroid Build Coastguard Worker 
Reset_TimePrecCFormatOptions104*f6dc9357SAndroid Build Coastguard Worker     void Reset_TimePrec()
105*f6dc9357SAndroid Build Coastguard Worker     {
106*f6dc9357SAndroid Build Coastguard Worker       TimePrec = (UInt32)(Int32)-1;
107*f6dc9357SAndroid Build Coastguard Worker     }
108*f6dc9357SAndroid Build Coastguard Worker 
IsSet_TimePrecCFormatOptions109*f6dc9357SAndroid Build Coastguard Worker     bool IsSet_TimePrec() const
110*f6dc9357SAndroid Build Coastguard Worker     {
111*f6dc9357SAndroid Build Coastguard Worker       return TimePrec != (UInt32)(Int32)-1;
112*f6dc9357SAndroid Build Coastguard Worker     }
113*f6dc9357SAndroid Build Coastguard Worker 
114*f6dc9357SAndroid Build Coastguard Worker 
Reset_BlockLogSizeCFormatOptions115*f6dc9357SAndroid Build Coastguard Worker     void Reset_BlockLogSize()
116*f6dc9357SAndroid Build Coastguard Worker     {
117*f6dc9357SAndroid Build Coastguard Worker       BlockLogSize = (UInt32)(Int32)-1;
118*f6dc9357SAndroid Build Coastguard Worker     }
119*f6dc9357SAndroid Build Coastguard Worker 
ResetForLevelChangeCFormatOptions120*f6dc9357SAndroid Build Coastguard Worker     void ResetForLevelChange()
121*f6dc9357SAndroid Build Coastguard Worker     {
122*f6dc9357SAndroid Build Coastguard Worker       BlockLogSize = NumThreads = Level = Dictionary = Order = (UInt32)(Int32)-1;
123*f6dc9357SAndroid Build Coastguard Worker       // DictionaryChain = (UInt32)(Int32)-1;
124*f6dc9357SAndroid Build Coastguard Worker       Method.Empty();
125*f6dc9357SAndroid Build Coastguard Worker       // Options.Empty();
126*f6dc9357SAndroid Build Coastguard Worker       // EncryptionMethod.Empty();
127*f6dc9357SAndroid Build Coastguard Worker     }
CFormatOptionsCFormatOptions128*f6dc9357SAndroid Build Coastguard Worker     CFormatOptions()
129*f6dc9357SAndroid Build Coastguard Worker     {
130*f6dc9357SAndroid Build Coastguard Worker       // TimePrec = 0;
131*f6dc9357SAndroid Build Coastguard Worker       Reset_TimePrec();
132*f6dc9357SAndroid Build Coastguard Worker       ResetForLevelChange();
133*f6dc9357SAndroid Build Coastguard Worker     }
134*f6dc9357SAndroid Build Coastguard Worker   };
135*f6dc9357SAndroid Build Coastguard Worker 
136*f6dc9357SAndroid Build Coastguard Worker   struct CInfo
137*f6dc9357SAndroid Build Coastguard Worker   {
138*f6dc9357SAndroid Build Coastguard Worker     UInt32 Level;
139*f6dc9357SAndroid Build Coastguard Worker     bool ShowPassword;
140*f6dc9357SAndroid Build Coastguard Worker     bool EncryptHeaders;
141*f6dc9357SAndroid Build Coastguard Worker 
142*f6dc9357SAndroid Build Coastguard Worker     CBoolPair NtSecurity;
143*f6dc9357SAndroid Build Coastguard Worker     CBoolPair AltStreams;
144*f6dc9357SAndroid Build Coastguard Worker     CBoolPair HardLinks;
145*f6dc9357SAndroid Build Coastguard Worker     CBoolPair SymLinks;
146*f6dc9357SAndroid Build Coastguard Worker 
147*f6dc9357SAndroid Build Coastguard Worker     CBoolPair PreserveATime;
148*f6dc9357SAndroid Build Coastguard Worker 
149*f6dc9357SAndroid Build Coastguard Worker     UString ArcType;
150*f6dc9357SAndroid Build Coastguard Worker     UStringVector ArcPaths;
151*f6dc9357SAndroid Build Coastguard Worker 
152*f6dc9357SAndroid Build Coastguard Worker     CObjectVector<CFormatOptions> Formats;
153*f6dc9357SAndroid Build Coastguard Worker 
154*f6dc9357SAndroid Build Coastguard Worker     void Save() const;
155*f6dc9357SAndroid Build Coastguard Worker     void Load();
156*f6dc9357SAndroid Build Coastguard Worker   };
157*f6dc9357SAndroid Build Coastguard Worker }
158*f6dc9357SAndroid Build Coastguard Worker 
159*f6dc9357SAndroid Build Coastguard Worker namespace NWorkDir
160*f6dc9357SAndroid Build Coastguard Worker {
161*f6dc9357SAndroid Build Coastguard Worker   namespace NMode
162*f6dc9357SAndroid Build Coastguard Worker   {
163*f6dc9357SAndroid Build Coastguard Worker     enum EEnum
164*f6dc9357SAndroid Build Coastguard Worker     {
165*f6dc9357SAndroid Build Coastguard Worker       kSystem,
166*f6dc9357SAndroid Build Coastguard Worker       kCurrent,
167*f6dc9357SAndroid Build Coastguard Worker       kSpecified
168*f6dc9357SAndroid Build Coastguard Worker     };
169*f6dc9357SAndroid Build Coastguard Worker   }
170*f6dc9357SAndroid Build Coastguard Worker   struct CInfo
171*f6dc9357SAndroid Build Coastguard Worker   {
172*f6dc9357SAndroid Build Coastguard Worker     NMode::EEnum Mode;
173*f6dc9357SAndroid Build Coastguard Worker     bool ForRemovableOnly;
174*f6dc9357SAndroid Build Coastguard Worker     FString Path;
175*f6dc9357SAndroid Build Coastguard Worker 
SetForRemovableOnlyDefaultCInfo176*f6dc9357SAndroid Build Coastguard Worker     void SetForRemovableOnlyDefault() { ForRemovableOnly = true; }
SetDefaultCInfo177*f6dc9357SAndroid Build Coastguard Worker     void SetDefault()
178*f6dc9357SAndroid Build Coastguard Worker     {
179*f6dc9357SAndroid Build Coastguard Worker       Mode = NMode::kSystem;
180*f6dc9357SAndroid Build Coastguard Worker       Path.Empty();
181*f6dc9357SAndroid Build Coastguard Worker       SetForRemovableOnlyDefault();
182*f6dc9357SAndroid Build Coastguard Worker     }
183*f6dc9357SAndroid Build Coastguard Worker 
184*f6dc9357SAndroid Build Coastguard Worker     void Save() const;
185*f6dc9357SAndroid Build Coastguard Worker     void Load();
186*f6dc9357SAndroid Build Coastguard Worker   };
187*f6dc9357SAndroid Build Coastguard Worker }
188*f6dc9357SAndroid Build Coastguard Worker 
189*f6dc9357SAndroid Build Coastguard Worker 
190*f6dc9357SAndroid Build Coastguard Worker struct CContextMenuInfo
191*f6dc9357SAndroid Build Coastguard Worker {
192*f6dc9357SAndroid Build Coastguard Worker   CBoolPair Cascaded;
193*f6dc9357SAndroid Build Coastguard Worker   CBoolPair MenuIcons;
194*f6dc9357SAndroid Build Coastguard Worker   CBoolPair ElimDup;
195*f6dc9357SAndroid Build Coastguard Worker 
196*f6dc9357SAndroid Build Coastguard Worker   bool Flags_Def;
197*f6dc9357SAndroid Build Coastguard Worker   UInt32 Flags;
198*f6dc9357SAndroid Build Coastguard Worker   UInt32 WriteZone;
199*f6dc9357SAndroid Build Coastguard Worker 
200*f6dc9357SAndroid Build Coastguard Worker   /*
201*f6dc9357SAndroid Build Coastguard Worker   CContextMenuInfo():
202*f6dc9357SAndroid Build Coastguard Worker       Flags_Def(0),
203*f6dc9357SAndroid Build Coastguard Worker       WriteZone((UInt32)(Int32)-1),
204*f6dc9357SAndroid Build Coastguard Worker       Flags((UInt32)(Int32)-1)
205*f6dc9357SAndroid Build Coastguard Worker       {}
206*f6dc9357SAndroid Build Coastguard Worker   */
207*f6dc9357SAndroid Build Coastguard Worker 
208*f6dc9357SAndroid Build Coastguard Worker   void Save() const;
209*f6dc9357SAndroid Build Coastguard Worker   void Load();
210*f6dc9357SAndroid Build Coastguard Worker };
211*f6dc9357SAndroid Build Coastguard Worker 
212*f6dc9357SAndroid Build Coastguard Worker #endif
213