00001 #ifndef UIBUILD 00002 #define UIBUILD 00003 00004 #include <itpp/itbase.h> 00005 #include "stat/libBM.h" 00006 #include "libconfig/libconfig.h++" 00007 00008 #include <sstream> 00009 #include <iostream> 00010 #include <stdio.h> 00011 #include <string> 00012 #include <typeinfo> 00013 #include <map> 00014 #include <utility> 00015 #include <vector> 00016 #include <iostream> 00017 00018 using std::string; 00019 using namespace std; 00020 using namespace libconfig; 00021 00022 #define UIREGISTER(class_name) template<> Particular_UI<class_name>& Particular_UI<class_name>::ui = Particular_UI<class_name>(#class_name) 00023 00024 #define ASSERT_UITYPE(S,Type) it_assert_debug(S.getType()==Setting::Type, string("Wrong setting type, see input path \"")+string(S.getPath())+string("\"")) 00025 00026 namespace bdm 00027 { 00028 00051 class UI_File : public Config 00052 { 00053 private: 00054 const string file_name; 00055 00056 public: 00058 UI_File( const string &file_name ); 00059 00061 void load(); 00062 00064 void save(); 00065 00066 operator Setting&(); 00067 }; 00068 00069 00084 00091 00095 00098 00102 00105 00109 00112 00117 00269 00323 00343 00407 00417 00445 00457 00463 00477 00479 00492 00500 00509 00518 00526 00535 00544 00552 00561 00570 00584 00590 00596 00630