00001 /*$$FILE$$*/ 00002 /*$$VERSION$$*/ 00003 /*$$DATE$$*/ 00004 /*$$LICENSE$$*/ 00005 00006 00014 #ifndef DICTOBJFILE_H 00015 #define DICTOBJFILE_H 00016 00017 00018 #include "mapped_ptr_vector.h" 00019 #include "mapped_ptr_vector.C" 00020 00021 #include "DictObjCont.h" 00022 00023 #include "DdlFile.h" 00024 #include "DicFile.h" 00025 00026 00041 class DictObjFile 00042 { 00043 public: 00044 00070 DictObjFile(const string& persStorFileName, const string& dicFileName = 00071 String::Empty, const string& ddlFileName = String::Empty, 00072 const bool verbose = false); 00073 00092 DictObjFile(const string& persStorFileName, const bool verbose); 00093 00108 ~DictObjFile(); 00109 00126 int Build(); 00127 00141 void Write(); 00142 00156 void Read(); 00157 00171 unsigned int GetNumDictionaries(); 00172 00187 void GetDictionaryNames(vector<string>& dictNames); 00188 00203 DictObjCont& GetDictObjCont(const string& dictName); 00204 00218 void Print(); 00219 00220 private: 00221 bool _verbose; 00222 00223 string _ddlFileName; 00224 string _dicFileName; 00225 string _fileNavFileName; 00226 00227 DdlFile& _ddlFile; 00228 DicFile& _dicFile; 00229 FileNavigator& _fileNav; 00230 00231 mapped_ptr_vector<DictObjCont> _dictionaries; 00232 00233 DictObjCont* _currDictObjContP; 00234 00235 void Init(const string& persStorFileName); 00236 00237 void OpenFile(const eFileMode fileMode); 00238 }; 00239 00240 00241 #endif // DICTOBJFILE_H 00242