xref: /aosp_15_r20/external/lzma/CPP/7zip/UI/Common/UpdateProduce.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker // UpdateProduce.h
2*f6dc9357SAndroid Build Coastguard Worker 
3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_UPDATE_PRODUCE_H
4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_UPDATE_PRODUCE_H
5*f6dc9357SAndroid Build Coastguard Worker 
6*f6dc9357SAndroid Build Coastguard Worker #include "UpdatePair.h"
7*f6dc9357SAndroid Build Coastguard Worker 
8*f6dc9357SAndroid Build Coastguard Worker struct CUpdatePair2
9*f6dc9357SAndroid Build Coastguard Worker {
10*f6dc9357SAndroid Build Coastguard Worker   bool NewData;
11*f6dc9357SAndroid Build Coastguard Worker   bool NewProps;
12*f6dc9357SAndroid Build Coastguard Worker   bool UseArcProps; // if (UseArcProps && NewProps), we want to change only some properties.
13*f6dc9357SAndroid Build Coastguard Worker   bool IsAnti; // if (!IsAnti) we use other ways to detect Anti status
14*f6dc9357SAndroid Build Coastguard Worker 
15*f6dc9357SAndroid Build Coastguard Worker   int DirIndex;
16*f6dc9357SAndroid Build Coastguard Worker   int ArcIndex;
17*f6dc9357SAndroid Build Coastguard Worker   int NewNameIndex;
18*f6dc9357SAndroid Build Coastguard Worker 
19*f6dc9357SAndroid Build Coastguard Worker   bool IsMainRenameItem;
20*f6dc9357SAndroid Build Coastguard Worker   bool IsSameTime;
21*f6dc9357SAndroid Build Coastguard Worker 
SetAs_NoChangeArcItemCUpdatePair222*f6dc9357SAndroid Build Coastguard Worker   void SetAs_NoChangeArcItem(unsigned arcIndex) // int
23*f6dc9357SAndroid Build Coastguard Worker   {
24*f6dc9357SAndroid Build Coastguard Worker     NewData = NewProps = false;
25*f6dc9357SAndroid Build Coastguard Worker     UseArcProps = true;
26*f6dc9357SAndroid Build Coastguard Worker     IsAnti = false;
27*f6dc9357SAndroid Build Coastguard Worker     ArcIndex = (int)arcIndex;
28*f6dc9357SAndroid Build Coastguard Worker   }
29*f6dc9357SAndroid Build Coastguard Worker 
ExistOnDiskCUpdatePair230*f6dc9357SAndroid Build Coastguard Worker   bool ExistOnDisk() const { return DirIndex != -1; }
ExistInArchiveCUpdatePair231*f6dc9357SAndroid Build Coastguard Worker   bool ExistInArchive() const { return ArcIndex != -1; }
32*f6dc9357SAndroid Build Coastguard Worker 
CUpdatePair2CUpdatePair233*f6dc9357SAndroid Build Coastguard Worker   CUpdatePair2():
34*f6dc9357SAndroid Build Coastguard Worker       NewData(false),
35*f6dc9357SAndroid Build Coastguard Worker       NewProps(false),
36*f6dc9357SAndroid Build Coastguard Worker       UseArcProps(false),
37*f6dc9357SAndroid Build Coastguard Worker       IsAnti(false),
38*f6dc9357SAndroid Build Coastguard Worker       DirIndex(-1),
39*f6dc9357SAndroid Build Coastguard Worker       ArcIndex(-1),
40*f6dc9357SAndroid Build Coastguard Worker       NewNameIndex(-1),
41*f6dc9357SAndroid Build Coastguard Worker       IsMainRenameItem(false),
42*f6dc9357SAndroid Build Coastguard Worker       IsSameTime(false)
43*f6dc9357SAndroid Build Coastguard Worker       {}
44*f6dc9357SAndroid Build Coastguard Worker };
45*f6dc9357SAndroid Build Coastguard Worker 
46*f6dc9357SAndroid Build Coastguard Worker Z7_PURE_INTERFACES_BEGIN
47*f6dc9357SAndroid Build Coastguard Worker 
DECLARE_INTERFACE(IUpdateProduceCallback)48*f6dc9357SAndroid Build Coastguard Worker DECLARE_INTERFACE(IUpdateProduceCallback)
49*f6dc9357SAndroid Build Coastguard Worker {
50*f6dc9357SAndroid Build Coastguard Worker   virtual HRESULT ShowDeleteFile(unsigned arcIndex) = 0;
51*f6dc9357SAndroid Build Coastguard Worker };
52*f6dc9357SAndroid Build Coastguard Worker Z7_PURE_INTERFACES_END
53*f6dc9357SAndroid Build Coastguard Worker 
54*f6dc9357SAndroid Build Coastguard Worker void UpdateProduce(
55*f6dc9357SAndroid Build Coastguard Worker     const CRecordVector<CUpdatePair> &updatePairs,
56*f6dc9357SAndroid Build Coastguard Worker     const NUpdateArchive::CActionSet &actionSet,
57*f6dc9357SAndroid Build Coastguard Worker     CRecordVector<CUpdatePair2> &operationChain,
58*f6dc9357SAndroid Build Coastguard Worker     IUpdateProduceCallback *callback);
59*f6dc9357SAndroid Build Coastguard Worker 
60*f6dc9357SAndroid Build Coastguard Worker #endif
61