xref: /aosp_15_r20/external/lzma/CPP/7zip/UI/Common/UpdateAction.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker // UpdateAction.h
2*f6dc9357SAndroid Build Coastguard Worker 
3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_UPDATE_ACTION_H
4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_UPDATE_ACTION_H
5*f6dc9357SAndroid Build Coastguard Worker 
6*f6dc9357SAndroid Build Coastguard Worker namespace NUpdateArchive {
7*f6dc9357SAndroid Build Coastguard Worker 
8*f6dc9357SAndroid Build Coastguard Worker   namespace NPairState
9*f6dc9357SAndroid Build Coastguard Worker   {
10*f6dc9357SAndroid Build Coastguard Worker     const unsigned kNumValues = 7;
11*f6dc9357SAndroid Build Coastguard Worker     enum EEnum
12*f6dc9357SAndroid Build Coastguard Worker     {
13*f6dc9357SAndroid Build Coastguard Worker       kNotMasked = 0,
14*f6dc9357SAndroid Build Coastguard Worker       kOnlyInArchive,
15*f6dc9357SAndroid Build Coastguard Worker       kOnlyOnDisk,
16*f6dc9357SAndroid Build Coastguard Worker       kNewInArchive,
17*f6dc9357SAndroid Build Coastguard Worker       kOldInArchive,
18*f6dc9357SAndroid Build Coastguard Worker       kSameFiles,
19*f6dc9357SAndroid Build Coastguard Worker       kUnknowNewerFiles
20*f6dc9357SAndroid Build Coastguard Worker     };
21*f6dc9357SAndroid Build Coastguard Worker   }
22*f6dc9357SAndroid Build Coastguard Worker 
23*f6dc9357SAndroid Build Coastguard Worker   namespace NPairAction
24*f6dc9357SAndroid Build Coastguard Worker   {
25*f6dc9357SAndroid Build Coastguard Worker     enum EEnum
26*f6dc9357SAndroid Build Coastguard Worker     {
27*f6dc9357SAndroid Build Coastguard Worker       kIgnore = 0,
28*f6dc9357SAndroid Build Coastguard Worker       kCopy,
29*f6dc9357SAndroid Build Coastguard Worker       kCompress,
30*f6dc9357SAndroid Build Coastguard Worker       kCompressAsAnti
31*f6dc9357SAndroid Build Coastguard Worker     };
32*f6dc9357SAndroid Build Coastguard Worker   }
33*f6dc9357SAndroid Build Coastguard Worker 
34*f6dc9357SAndroid Build Coastguard Worker   struct CActionSet
35*f6dc9357SAndroid Build Coastguard Worker   {
36*f6dc9357SAndroid Build Coastguard Worker     NPairAction::EEnum StateActions[NPairState::kNumValues];
37*f6dc9357SAndroid Build Coastguard Worker 
IsEqualToCActionSet38*f6dc9357SAndroid Build Coastguard Worker     bool IsEqualTo(const CActionSet &a) const
39*f6dc9357SAndroid Build Coastguard Worker     {
40*f6dc9357SAndroid Build Coastguard Worker       for (unsigned i = 0; i < NPairState::kNumValues; i++)
41*f6dc9357SAndroid Build Coastguard Worker         if (StateActions[i] != a.StateActions[i])
42*f6dc9357SAndroid Build Coastguard Worker           return false;
43*f6dc9357SAndroid Build Coastguard Worker       return true;
44*f6dc9357SAndroid Build Coastguard Worker     }
45*f6dc9357SAndroid Build Coastguard Worker 
NeedScanningCActionSet46*f6dc9357SAndroid Build Coastguard Worker     bool NeedScanning() const
47*f6dc9357SAndroid Build Coastguard Worker     {
48*f6dc9357SAndroid Build Coastguard Worker       unsigned i;
49*f6dc9357SAndroid Build Coastguard Worker       for (i = 0; i < NPairState::kNumValues; i++)
50*f6dc9357SAndroid Build Coastguard Worker         if (StateActions[i] == NPairAction::kCompress)
51*f6dc9357SAndroid Build Coastguard Worker           return true;
52*f6dc9357SAndroid Build Coastguard Worker       for (i = 1; i < NPairState::kNumValues; i++)
53*f6dc9357SAndroid Build Coastguard Worker         if (StateActions[i] != NPairAction::kIgnore)
54*f6dc9357SAndroid Build Coastguard Worker           return true;
55*f6dc9357SAndroid Build Coastguard Worker       return false;
56*f6dc9357SAndroid Build Coastguard Worker     }
57*f6dc9357SAndroid Build Coastguard Worker   };
58*f6dc9357SAndroid Build Coastguard Worker 
59*f6dc9357SAndroid Build Coastguard Worker   extern const CActionSet k_ActionSet_Add;
60*f6dc9357SAndroid Build Coastguard Worker   extern const CActionSet k_ActionSet_Update;
61*f6dc9357SAndroid Build Coastguard Worker   extern const CActionSet k_ActionSet_Fresh;
62*f6dc9357SAndroid Build Coastguard Worker   extern const CActionSet k_ActionSet_Sync;
63*f6dc9357SAndroid Build Coastguard Worker   extern const CActionSet k_ActionSet_Delete;
64*f6dc9357SAndroid Build Coastguard Worker }
65*f6dc9357SAndroid Build Coastguard Worker 
66*f6dc9357SAndroid Build Coastguard Worker #endif
67