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