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