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