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