/* * This file is a part of Winix * and is not publicly distributed * * Copyright (c) 2010, Tomasz Sowa * All rights reserved. * */ #ifndef headerfilecmslutemplatesindexpatterns #define headerfilecmslutemplatesindexpatterns #include #include #include #include "ezc.h" #include "../core/locale.h" #include "localefilter.h" class IndexPatterns { public: // can return null pointer if there is not such a pattern Ezc::Pattern * GetPattern(const std::string & file, Locale::Lang lang); void AddPattern(const std::string & file, Locale & locale, LocaleFilter & locale_filter, bool delete_white); void AddPatternIfNotExists(const std::string & file, Locale & locale, LocaleFilter & locale_filter, bool delete_white); // adding a file name without reading the pattern // the pattern will be read during ReloadPatterns() void AddFileName(const std::string & file); void ReloadPatterns(Locale & locale, LocaleFilter & locale_filter, bool delete_white); void MarkAllToDelete(); void DeleteMarked(); private: struct Template { bool to_delete; // table[lang] std::vector patterns; }; typedef std::map Tab; Tab tab; void ReadPattern(Tab::iterator & i, Locale & locale, LocaleFilter & locale_filter, bool delete_white); }; #endif