00001 #ifndef UIBUILD 00002 #define UIBUILD 00003 00004 00005 #include <sstream> 00006 #include <iostream> 00007 #include <stdio.h> 00008 #include <string> 00009 #include <typeinfo> 00010 #include <map> 00011 #include <utility> 00012 #include <vector> 00013 #include <iostream> 00014 00015 #include "libconfig/libconfig.h++" 00016 00017 #include <itpp/itbase.h> 00018 00019 #include "stat/libBM.h" 00020 00021 using std::string; 00022 using namespace std; 00023 using namespace libconfig; 00024 00025 #define UIREGISTER(class_name) template<> Particular_UI<class_name>& Particular_UI<class_name>::ui = Particular_UI<class_name>(#class_name) 00026 00027 #define ASSERT_UITYPE(S,Type) it_assert_debug(S.getType()==Setting::Type, string("Wrong setting type, see input path \"")+string(S.getPath())+string("\"")) 00028 00029 namespace bdm 00030 { 00031 class UI_File : public Config 00032 { 00033 private: 00034 const string file_name; 00035 00036 public: 00038 UI_File( const string &file_name ); 00039 00041 void load(); 00042 00044 void save(); 00045 00046 operator Setting&(); 00047 }; 00048 00086 00093 00097 00100 00103 00106 00110 00113 00116 00138 00143 00153 00155 00159 00199 00217 00223 00237 00239 00254 00263 00272 00281 00311 00322 00325 00329 00339 00345 00351 00387