1370b324cSopenharmony_ci// UpdateAction.h 2370b324cSopenharmony_ci 3370b324cSopenharmony_ci#ifndef ZIP7_INC_UPDATE_ACTION_H 4370b324cSopenharmony_ci#define ZIP7_INC_UPDATE_ACTION_H 5370b324cSopenharmony_ci 6370b324cSopenharmony_cinamespace NUpdateArchive { 7370b324cSopenharmony_ci 8370b324cSopenharmony_ci namespace NPairState 9370b324cSopenharmony_ci { 10370b324cSopenharmony_ci const unsigned kNumValues = 7; 11370b324cSopenharmony_ci enum EEnum 12370b324cSopenharmony_ci { 13370b324cSopenharmony_ci kNotMasked = 0, 14370b324cSopenharmony_ci kOnlyInArchive, 15370b324cSopenharmony_ci kOnlyOnDisk, 16370b324cSopenharmony_ci kNewInArchive, 17370b324cSopenharmony_ci kOldInArchive, 18370b324cSopenharmony_ci kSameFiles, 19370b324cSopenharmony_ci kUnknowNewerFiles 20370b324cSopenharmony_ci }; 21370b324cSopenharmony_ci } 22370b324cSopenharmony_ci 23370b324cSopenharmony_ci namespace NPairAction 24370b324cSopenharmony_ci { 25370b324cSopenharmony_ci enum EEnum 26370b324cSopenharmony_ci { 27370b324cSopenharmony_ci kIgnore = 0, 28370b324cSopenharmony_ci kCopy, 29370b324cSopenharmony_ci kCompress, 30370b324cSopenharmony_ci kCompressAsAnti 31370b324cSopenharmony_ci }; 32370b324cSopenharmony_ci } 33370b324cSopenharmony_ci 34370b324cSopenharmony_ci struct CActionSet 35370b324cSopenharmony_ci { 36370b324cSopenharmony_ci NPairAction::EEnum StateActions[NPairState::kNumValues]; 37370b324cSopenharmony_ci 38370b324cSopenharmony_ci bool IsEqualTo(const CActionSet &a) const 39370b324cSopenharmony_ci { 40370b324cSopenharmony_ci for (unsigned i = 0; i < NPairState::kNumValues; i++) 41370b324cSopenharmony_ci if (StateActions[i] != a.StateActions[i]) 42370b324cSopenharmony_ci return false; 43370b324cSopenharmony_ci return true; 44370b324cSopenharmony_ci } 45370b324cSopenharmony_ci 46370b324cSopenharmony_ci bool NeedScanning() const 47370b324cSopenharmony_ci { 48370b324cSopenharmony_ci unsigned i; 49370b324cSopenharmony_ci for (i = 0; i < NPairState::kNumValues; i++) 50370b324cSopenharmony_ci if (StateActions[i] == NPairAction::kCompress) 51370b324cSopenharmony_ci return true; 52370b324cSopenharmony_ci for (i = 1; i < NPairState::kNumValues; i++) 53370b324cSopenharmony_ci if (StateActions[i] != NPairAction::kIgnore) 54370b324cSopenharmony_ci return true; 55370b324cSopenharmony_ci return false; 56370b324cSopenharmony_ci } 57370b324cSopenharmony_ci }; 58370b324cSopenharmony_ci 59370b324cSopenharmony_ci extern const CActionSet k_ActionSet_Add; 60370b324cSopenharmony_ci extern const CActionSet k_ActionSet_Update; 61370b324cSopenharmony_ci extern const CActionSet k_ActionSet_Fresh; 62370b324cSopenharmony_ci extern const CActionSet k_ActionSet_Sync; 63370b324cSopenharmony_ci extern const CActionSet k_ActionSet_Delete; 64370b324cSopenharmony_ci} 65370b324cSopenharmony_ci 66370b324cSopenharmony_ci#endif 67