Index: src/ch/FileFilter.cpp =================================================================== diff -u -N -r633a533cb6e741d44fe28aa56339e1d2709b1b27 -r5fd6beaad9f1eccb664b997d151acb59961e4827 --- src/ch/FileFilter.cpp (.../FileFilter.cpp) (revision 633a533cb6e741d44fe28aa56339e1d2709b1b27) +++ src/ch/FileFilter.cpp (.../FileFilter.cpp) (revision 5fd6beaad9f1eccb664b997d151acb59961e4827) @@ -20,6 +20,8 @@ #include "FileInfo.h" #include "FileFilter.h" #include "../libchcore/TConfig.h" +#include "../libchcore/TBinarySerializer.h" +#include "../libchcore/SerializationHelpers.h" //////////////////////////////////////////////////////////////////////////// bool _tcicmp(TCHAR c1, TCHAR c2) @@ -303,6 +305,86 @@ m_iDirectory = 0; } +void CFileFilter::Serialize(chcore::TReadBinarySerializer& rSerializer) +{ + using chcore::Serializers::Serialize; + + Serialize(rSerializer, m_bUseMask); + Serialize(rSerializer, m_astrMask); + + Serialize(rSerializer, m_bUseExcludeMask); + Serialize(rSerializer, m_astrExcludeMask); + + Serialize(rSerializer, m_bUseSize); + Serialize(rSerializer, m_iSizeType1); + Serialize(rSerializer, m_ullSize1); + Serialize(rSerializer, m_bUseSize2); + Serialize(rSerializer, m_iSizeType2); + Serialize(rSerializer, m_ullSize2); + + Serialize(rSerializer, m_bUseDate); + Serialize(rSerializer, m_iDateType); // created/last modified/last accessed + Serialize(rSerializer, m_iDateType1); // before/after + Serialize(rSerializer, m_bDate1); + Serialize(rSerializer, m_tDate1); + Serialize(rSerializer, m_bTime1); + Serialize(rSerializer, m_tTime1); + + Serialize(rSerializer, m_bUseDate2); + Serialize(rSerializer, m_iDateType2); + Serialize(rSerializer, m_bDate2); + Serialize(rSerializer, m_tDate2); + Serialize(rSerializer, m_bTime2); + Serialize(rSerializer, m_tTime2); + + Serialize(rSerializer, m_bUseAttributes); + Serialize(rSerializer, m_iArchive); + Serialize(rSerializer, m_iReadOnly); + Serialize(rSerializer, m_iHidden); + Serialize(rSerializer, m_iSystem); + Serialize(rSerializer, m_iDirectory); +} + +void CFileFilter::Serialize(chcore::TWriteBinarySerializer& rSerializer) const +{ + using chcore::Serializers::Serialize; + + Serialize(rSerializer, m_bUseMask); + Serialize(rSerializer, m_astrMask); + + Serialize(rSerializer, m_bUseExcludeMask); + Serialize(rSerializer, m_astrExcludeMask); + + Serialize(rSerializer, m_bUseSize); + Serialize(rSerializer, m_iSizeType1); + Serialize(rSerializer, m_ullSize1); + Serialize(rSerializer, m_bUseSize2); + Serialize(rSerializer, m_iSizeType2); + Serialize(rSerializer, m_ullSize2); + + Serialize(rSerializer, m_bUseDate); + Serialize(rSerializer, m_iDateType); // created/last modified/last accessed + Serialize(rSerializer, m_iDateType1); // before/after + Serialize(rSerializer, m_bDate1); + Serialize(rSerializer, m_tDate1); + Serialize(rSerializer, m_bTime1); + Serialize(rSerializer, m_tTime1); + + Serialize(rSerializer, m_bUseDate2); + Serialize(rSerializer, m_iDateType2); + Serialize(rSerializer, m_bDate2); + Serialize(rSerializer, m_tDate2); + Serialize(rSerializer, m_bTime2); + Serialize(rSerializer, m_tTime2); + + Serialize(rSerializer, m_bUseAttributes); + Serialize(rSerializer, m_iArchive); + Serialize(rSerializer, m_iReadOnly); + Serialize(rSerializer, m_iHidden); + Serialize(rSerializer, m_iSystem); + Serialize(rSerializer, m_iDirectory); +} + bool CFileFilter::Match(const CFileInfoPtr& spInfo) const { // check by mask @@ -616,6 +698,18 @@ return true; } +void CFiltersArray::Serialize(chcore::TReadBinarySerializer& rSerializer) +{ + using chcore::Serializers::Serialize; + Serialize(rSerializer, m_vFilters); +} + +void CFiltersArray::Serialize(chcore::TWriteBinarySerializer& rSerializer) const +{ + using chcore::Serializers::Serialize; + Serialize(rSerializer, m_vFilters); +} + bool CFiltersArray::IsEmpty() const { return m_vFilters.empty();