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