#pragma once #include "libchengine.h" #include "../libserializer/SerializableObject.h" #include "../libstring/TStringPatternArray.h" #include "ECompareType.h" #include "EFeedbackResult.h" #include "../libserializer/SerializerDataTypes.h" #include #include "../libserializer/TSharedModificationTracker.h" #include "TFileInfo.h" #include "TConfig.h" namespace chengine { namespace FeedbackRuleEnum { enum EModifications { eMod_Added, eMod_UseMask, eMod_Mask, eMod_UseExcludeMask, eMod_ExcludeMask, eMod_UseSizeCompare, eMod_SizeCompare, eMod_UseDateCompare, eMod_DateCompare, eMod_Result, eMod_Last }; } #pragma warning(push) #pragma warning(disable: 4251) class LIBCHENGINE_API FeedbackRule : public serializer::SerializableObject { public: FeedbackRule(); FeedbackRule(const FeedbackRule& rSrc); FeedbackRule& operator=(const FeedbackRule& rSrc); bool operator==(const FeedbackRule& rSrc) const; bool operator!=(const FeedbackRule& rSrc) const; void SetData(const FeedbackRule& rSrc); bool Matches(const TFileInfoPtr& spSrcFile, const TFileInfoPtr& spDstFile, EFeedbackResult& eResult) const; void Store(const serializer::ISerializerContainerPtr& spContainer) const override; void Load(const serializer::ISerializerRowReaderPtr& spRowReader) override; static void InitColumns(serializer::IColumnsDefinition& rColumns); void StoreInConfig(TConfig& rConfig) const; void ReadFromConfig(const TConfig& rConfig); // get/set // atrributes access bool GetUseMask() const; void SetUseMask(bool bUseMask); string::TString GetCombinedMask() const; void SetCombinedMask(const string::TString& pMask); bool GetUseExcludeMask() const; void SetUseExcludeMask(bool bUseExcludeMask); string::TString GetCombinedExcludeMask() const; void SetCombinedExcludeMask(const string::TString& pMask); bool GetUseDateCompare() const; void SetUseDateCompare(bool bUseDateCompare); ECompareType GetDateCompareType() const; void SetDateCompareType(ECompareType eCmpType); bool GetUseSizeCompare() const; void SetUseSizeCompare(bool bUseSizeCompare); ECompareType GetSizeCompareType() const; void SetSizeCompareType(ECompareType eCmpType); private: // object identification serializer::TSharedModificationTracker m_bUseMask; serializer::TSharedModificationTracker m_spaMask; serializer::TSharedModificationTracker m_bUseExcludeMask; serializer::TSharedModificationTracker m_spaExcludeMask; serializer::TSharedModificationTracker m_bUseDateCompare; serializer::TSharedModificationTracker m_cmpLastModified; serializer::TSharedModificationTracker m_bUseSizeCompare; serializer::TSharedModificationTracker m_cmpSize; serializer::TSharedModificationTracker m_eResult; }; #pragma warning(pop) }