Index: src/libstring/TStringPatternArray.h =================================================================== diff -u -N -r0d5b67ee96b435d63f7bf075dc8e28603793b187 -rfadd6c9c628de875716d96c3a497b5bc6c8dca8a --- src/libstring/TStringPatternArray.h (.../TStringPatternArray.h) (revision 0d5b67ee96b435d63f7bf075dc8e28603793b187) +++ src/libstring/TStringPatternArray.h (.../TStringPatternArray.h) (revision fadd6c9c628de875716d96c3a497b5bc6c8dca8a) @@ -20,22 +20,26 @@ #define __TSTRINGPATTERNARRAY_H__ #include "TStringPattern.h" +#include "../common/GenericTemplates/RandomAccessIterators.h" +#include "../common/GenericTemplates/RandomAccessContainerWrapper.h" namespace string { - class LIBSTRING_API TStringPatternArray + template class LIBSTRING_API RandomAccessIteratorWrapper; + class LIBSTRING_API TStringPatternArrayIterator : public RandomAccessIteratorWrapper { - public: - // general api - void Add(const TStringPattern& strPattern); - void InsertAt(size_t stIndex, const TStringPattern& strPattern); - void SetAt(size_t stIndex, const TStringPattern& strPattern); - void RemoveAt(size_t stIndex); - void Clear(); + }; - const TStringPattern& GetAt(size_t stIndex) const; - size_t GetCount() const; + template class LIBSTRING_API RandomAccessConstIteratorWrapper; + class LIBSTRING_API TStringPatternArrayConstIterator : public RandomAccessConstIteratorWrapper + { + }; + template class LIBSTRING_API RandomAccessContainerWrapper; + + class LIBSTRING_API TStringPatternArray : public RandomAccessContainerWrapper + { + public: // pattern api bool MatchesAny(const TString& strTextToMatch) const; bool MatchesAll(const TString& strTextToMatch) const; @@ -48,12 +52,6 @@ // serialization void FromSerializedStringArray(const TStringArray& arrSerializedPatterns); TStringArray ToSerializedStringArray() const; - - private: -#pragma warning(push) -#pragma warning(disable: 4251) - std::vector m_vPatterns; -#pragma warning(pop) }; }