#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 FeedbackAlreadyExistsRuleEnum { 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 FeedbackAlreadyExistsRule : public serializer::SerializableObject { public: FeedbackAlreadyExistsRule(); FeedbackAlreadyExistsRule(const FeedbackAlreadyExistsRule& rSrc); FeedbackAlreadyExistsRule& operator=(const FeedbackAlreadyExistsRule& rSrc); bool operator==(const FeedbackAlreadyExistsRule& rSrc) const; bool operator!=(const FeedbackAlreadyExistsRule& rSrc) const; void SetData(const FeedbackAlreadyExistsRule& rSrc); bool Matches(const TFileInfo& rSrcFile, const TFileInfo& rDstFile, 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); // comparison bool HaveSameCondition(const FeedbackAlreadyExistsRule& rSrc) const; // get/set // atrributes access bool GetUseMask() const; void SetUseMask(bool bUseMask); string::TString GetCombinedMask() const; void SetCombinedMask(const string::TString& strMask); bool GetUseExcludeMask() const; void SetUseExcludeMask(bool bUseExcludeMask); string::TString GetCombinedExcludeMask() const; void SetCombinedExcludeMask(const string::TString& strMask); 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); EFeedbackResult GetResult() const; void SetResult(EFeedbackResult eResult); private: 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) }