Index: src/libchengine/TFileFilter.h =================================================================== diff -u -N -rf3c80778cfee0736195e00274c78040f7908ac5b -rf01ed9a0279a52c96a7272273ef19e57f7670f4a --- src/libchengine/TFileFilter.h (.../TFileFilter.h) (revision f3c80778cfee0736195e00274c78040f7908ac5b) +++ src/libchengine/TFileFilter.h (.../TFileFilter.h) (revision f01ed9a0279a52c96a7272273ef19e57f7670f4a) @@ -25,15 +25,55 @@ #include "../libstring/TStringPatternArray.h" #include "../libserializer/TSharedModificationTracker.h" #include "ECompareType.h" +#include "../libserializer/SerializableObject.h" namespace chengine { class TConfig; class TFileInfo; typedef std::shared_ptr<TFileInfo> TFileInfoPtr; - class LIBCHENGINE_API TFileFilter + namespace FileFilterEnum { + enum EModifications + { + eMod_Added, + eMod_UseMask, + eMod_Mask, + eMod_UseExcludeMask, + eMod_ExcludeMask, + eMod_UseSize1, + eMod_SizeCmpType1, + eMod_Size1, + eMod_UseSize2, + eMod_SizeCmpType2, + eMod_Size2, + eMod_DateType, + eMod_UseDateTime1, + eMod_DateCmpType1, + eMod_UseDate1, + eMod_UseTime1, + eMod_DateTime1, + eMod_UseDateTime2, + eMod_DateCmpType2, + eMod_UseDate2, + eMod_UseTime2, + eMod_DateTime2, + eMod_UseAttributes, + eMod_AttrArchive, + eMod_AttrReadOnly, + eMod_AttrHidden, + eMod_AttrSystem, + eMod_AttrDirectory, + + eMod_Last + }; + }; + +#pragma warning(push) +#pragma warning(disable: 4251) + class LIBCHENGINE_API TFileFilter : public serializer::SerializableObject<FileFilterEnum::eMod_Last> + { public: enum EDateType { @@ -155,92 +195,51 @@ void SetDirectory(int iDirectory) { m_iDirectory = iDirectory; } private: - enum EModifications - { - eMod_Added, - eMod_UseMask, - eMod_Mask, - eMod_UseExcludeMask, - eMod_ExcludeMask, - eMod_UseSize1, - eMod_SizeCmpType1, - eMod_Size1, - eMod_UseSize2, - eMod_SizeCmpType2, - eMod_Size2, - eMod_DateType, - eMod_UseDateTime1, - eMod_DateCmpType1, - eMod_UseDate1, - eMod_UseTime1, - eMod_DateTime1, - eMod_UseDateTime2, - eMod_DateCmpType2, - eMod_UseDate2, - eMod_UseTime2, - eMod_DateTime2, - eMod_UseAttributes, - eMod_AttrArchive, - eMod_AttrReadOnly, - eMod_AttrHidden, - eMod_AttrSystem, - eMod_AttrDirectory, - - eMod_Last - }; - - // object identification - serializer::object_id_t m_oidObjectID; - // modification management -#pragma warning(push) -#pragma warning(disable: 4251) - typedef std::bitset<eMod_Last> Bitset; - mutable Bitset m_setModifications; // files mask - serializer::TSharedModificationTracker<bool, Bitset, eMod_UseMask> m_bUseMask; - serializer::TSharedModificationTracker<string::TStringPatternArray, Bitset, eMod_Mask> m_astrMask; + serializer::TSharedModificationTracker<bool, Bitset, FileFilterEnum::eMod_UseMask> m_bUseMask; + serializer::TSharedModificationTracker<string::TStringPatternArray, Bitset, FileFilterEnum::eMod_Mask> m_astrMask; // files mask- - serializer::TSharedModificationTracker<bool, Bitset, eMod_UseExcludeMask> m_bUseExcludeMask; - serializer::TSharedModificationTracker<string::TStringPatternArray, Bitset, eMod_ExcludeMask> m_astrExcludeMask; + serializer::TSharedModificationTracker<bool, Bitset, FileFilterEnum::eMod_UseExcludeMask> m_bUseExcludeMask; + serializer::TSharedModificationTracker<string::TStringPatternArray, Bitset, FileFilterEnum::eMod_ExcludeMask> m_astrExcludeMask; // size filtering - serializer::TSharedModificationTracker<bool, Bitset, eMod_UseSize1> m_bUseSize1; - serializer::TSharedModificationTracker<ECompareType, Bitset, eMod_SizeCmpType1> m_eSizeCmpType1; - serializer::TSharedModificationTracker<unsigned long long, Bitset, eMod_Size1> m_ullSize1; + serializer::TSharedModificationTracker<bool, Bitset, FileFilterEnum::eMod_UseSize1> m_bUseSize1; + serializer::TSharedModificationTracker<ECompareType, Bitset, FileFilterEnum::eMod_SizeCmpType1> m_eSizeCmpType1; + serializer::TSharedModificationTracker<unsigned long long, Bitset, FileFilterEnum::eMod_Size1> m_ullSize1; - serializer::TSharedModificationTracker<bool, Bitset, eMod_UseSize2> m_bUseSize2; - serializer::TSharedModificationTracker<ECompareType, Bitset, eMod_SizeCmpType2> m_eSizeCmpType2; - serializer::TSharedModificationTracker<unsigned long long, Bitset, eMod_Size2> m_ullSize2; + serializer::TSharedModificationTracker<bool, Bitset, FileFilterEnum::eMod_UseSize2> m_bUseSize2; + serializer::TSharedModificationTracker<ECompareType, Bitset, FileFilterEnum::eMod_SizeCmpType2> m_eSizeCmpType2; + serializer::TSharedModificationTracker<unsigned long long, Bitset, FileFilterEnum::eMod_Size2> m_ullSize2; // date filtering - serializer::TSharedModificationTracker<EDateType, Bitset, eMod_DateType> m_eDateType; // created/last modified/last accessed + serializer::TSharedModificationTracker<EDateType, Bitset, FileFilterEnum::eMod_DateType> m_eDateType; // created/last modified/last accessed - serializer::TSharedModificationTracker<bool, Bitset, eMod_UseDateTime1> m_bUseDateTime1; + serializer::TSharedModificationTracker<bool, Bitset, FileFilterEnum::eMod_UseDateTime1> m_bUseDateTime1; - serializer::TSharedModificationTracker<ECompareType, Bitset, eMod_DateCmpType1> m_eDateCmpType1; // before/after - serializer::TSharedModificationTracker<bool, Bitset, eMod_UseDate1> m_bUseDate1; - serializer::TSharedModificationTracker<bool, Bitset, eMod_UseTime1> m_bUseTime1; - serializer::TSharedModificationTracker<TDateTime, Bitset, eMod_DateTime1> m_tDateTime1; + serializer::TSharedModificationTracker<ECompareType, Bitset, FileFilterEnum::eMod_DateCmpType1> m_eDateCmpType1; // before/after + serializer::TSharedModificationTracker<bool, Bitset, FileFilterEnum::eMod_UseDate1> m_bUseDate1; + serializer::TSharedModificationTracker<bool, Bitset, FileFilterEnum::eMod_UseTime1> m_bUseTime1; + serializer::TSharedModificationTracker<TDateTime, Bitset, FileFilterEnum::eMod_DateTime1> m_tDateTime1; - serializer::TSharedModificationTracker<bool, Bitset, eMod_UseDateTime2> m_bUseDateTime2; + serializer::TSharedModificationTracker<bool, Bitset, FileFilterEnum::eMod_UseDateTime2> m_bUseDateTime2; - serializer::TSharedModificationTracker<ECompareType, Bitset, eMod_DateCmpType2> m_eDateCmpType2; - serializer::TSharedModificationTracker<bool, Bitset, eMod_UseDate2> m_bUseDate2; - serializer::TSharedModificationTracker<bool, Bitset, eMod_UseTime2> m_bUseTime2; - serializer::TSharedModificationTracker<TDateTime, Bitset, eMod_DateTime2> m_tDateTime2; + serializer::TSharedModificationTracker<ECompareType, Bitset, FileFilterEnum::eMod_DateCmpType2> m_eDateCmpType2; + serializer::TSharedModificationTracker<bool, Bitset, FileFilterEnum::eMod_UseDate2> m_bUseDate2; + serializer::TSharedModificationTracker<bool, Bitset, FileFilterEnum::eMod_UseTime2> m_bUseTime2; + serializer::TSharedModificationTracker<TDateTime, Bitset, FileFilterEnum::eMod_DateTime2> m_tDateTime2; // attribute filtering - serializer::TSharedModificationTracker<bool, Bitset, eMod_UseAttributes> m_bUseAttributes; - serializer::TSharedModificationTracker<int, Bitset, eMod_AttrArchive> m_iArchive; - serializer::TSharedModificationTracker<int, Bitset, eMod_AttrReadOnly> m_iReadOnly; - serializer::TSharedModificationTracker<int, Bitset, eMod_AttrHidden> m_iHidden; - serializer::TSharedModificationTracker<int, Bitset, eMod_AttrSystem> m_iSystem; - serializer::TSharedModificationTracker<int, Bitset, eMod_AttrDirectory> m_iDirectory; -#pragma warning(pop) + serializer::TSharedModificationTracker<bool, Bitset, FileFilterEnum::eMod_UseAttributes> m_bUseAttributes; + serializer::TSharedModificationTracker<int, Bitset, FileFilterEnum::eMod_AttrArchive> m_iArchive; + serializer::TSharedModificationTracker<int, Bitset, FileFilterEnum::eMod_AttrReadOnly> m_iReadOnly; + serializer::TSharedModificationTracker<int, Bitset, FileFilterEnum::eMod_AttrHidden> m_iHidden; + serializer::TSharedModificationTracker<int, Bitset, FileFilterEnum::eMod_AttrSystem> m_iSystem; + serializer::TSharedModificationTracker<int, Bitset, FileFilterEnum::eMod_AttrDirectory> m_iDirectory; }; +#pragma warning(pop) } #endif