00001
00002
00003
00004
00005
00006
00007 #ifndef LANGMAP_H
00008 #define LANGMAP_H
00009
00010 #include <string>
00011 #include <map>
00012 #include <set>
00013
00014 namespace srchilite {
00015
00029 class LangMap {
00030 typedef std::map<std::string, std::string> Map;
00031
00032 Map langmap;
00033
00035 bool isOpen;
00036
00038 std::string path;
00039
00041 std::string filename;
00042
00043 public:
00050 LangMap(const std::string &path, const std::string &filename);
00051
00057 LangMap(const std::string &filename);
00058
00059 ~LangMap();
00060
00061 typedef Map::const_iterator const_iterator;
00062
00063 const_iterator begin() {
00064 return langmap.begin();
00065 }
00066
00067 const_iterator end() {
00068 return langmap.end();
00069 }
00070
00075 void print();
00076
00083 void open();
00084
00096 const std::string getFileName(const std::string &lang) {
00097 return langmap[lang];
00098 }
00099
00111 const std::string getMappedFileName(const std::string &lang);
00112
00139 const std::string getMappedFileNameFromFileName(const std::string &fileName);
00140
00146 std::set<std::string> getLangNames() const;
00147
00153 std::set<std::string> getMappedFileNames() const;
00154
00161 void reload(const std::string &path, const std::string &filename);
00162
00163 };
00164
00165 }
00166
00167 #endif