Index: src/libchengine/TFileFiltersArray.h
===================================================================
diff -u -r0d5b67ee96b435d63f7bf075dc8e28603793b187 -rfadd6c9c628de875716d96c3a497b5bc6c8dca8a
--- src/libchengine/TFileFiltersArray.h	(.../TFileFiltersArray.h)	(revision 0d5b67ee96b435d63f7bf075dc8e28603793b187)
+++ src/libchengine/TFileFiltersArray.h	(.../TFileFiltersArray.h)	(revision fadd6c9c628de875716d96c3a497b5bc6c8dca8a)
@@ -21,19 +21,30 @@
 
 #include "TFileFilter.h"
 #include "../libserializer/TRemovedObjects.h"
+#include "../common/GenericTemplates/RandomAccessIterators.h"
+#include "../common/GenericTemplates/RandomAccessContainerWrapper.h"
 
 namespace chengine
 {
 	class TConfig;
 	class TFileInfo;
 	typedef std::shared_ptr<TFileInfo> TFileInfoPtr;
 
-	class LIBCHENGINE_API TFileFiltersArray
+	template class LIBCHENGINE_API RandomAccessIteratorWrapper<TFileFilter>;
+	class LIBCHENGINE_API TFileFiltersArrayIterator : public RandomAccessIteratorWrapper<TFileFilter>
 	{
-	public:
-		TFileFiltersArray();
-		~TFileFiltersArray();
+	};
 
+	template class LIBCHENGINE_API RandomAccessConstIteratorWrapper<TFileFilter>;
+	class LIBCHENGINE_API TFileFiltersArrayConstIterator : public RandomAccessConstIteratorWrapper<TFileFilter>
+	{
+	};
+
+	template class LIBCHENGINE_API RandomAccessContainerWrapper<TFileFilter>;
+
+	class LIBCHENGINE_API TFileFiltersArray : public RandomAccessContainerWrapper<TFileFilter>
+	{
+	public:
 		bool Match(const TFileInfoPtr& spInfo) const;
 
 		void StoreInConfig(TConfig& rConfig, PCTSTR pszNodeName) const;
@@ -44,21 +55,7 @@
 
 		void InitColumns(const serializer::ISerializerContainerPtr& spContainer) const;
 
-		bool IsEmpty() const;
-
-		void Add(const TFileFilter& rFilter);
-		bool SetAt(size_t stIndex, const TFileFilter& rNewFilter);
-		const TFileFilter* GetAt(size_t stIndex) const;
-		bool RemoveAt(size_t stIndex);
-		size_t GetSize() const;
-
-		void Clear();
-
 	private:
-#pragma warning(push)
-#pragma warning(disable: 4251)
-		std::vector<TFileFilter> m_vFilters;
-#pragma warning(pop)
 		mutable serializer::TRemovedObjects m_setRemovedObjects;
 	};
 }