00001
00002
00003
00005
00006
00008 #include "Config/Config.h"
00009 #include "Config/Param.h"
00010 #include "Config/ConfigBuilder.h"
00011
00012
00013
00014 int main(void)
00015 {
00016 bool p1 = true;
00017 int p2 = 11121970;
00018 float p3 = 1112.1970;
00019 double p4 = 111219.70;
00020 std::string p5 = "The dog barks backwards...";
00021 float p6 = 3.1415927;
00022
00023 bool po1;
00024 int po2;
00025 float po3;
00026 double po4;
00027 std::string po5;
00028 float po6;
00029
00030 cfg::Param* param1 = new cfg::Param("p1",p1,"bool param");
00031 cfg::Param* param2 = new cfg::Param("p2",p2,"int param");
00032 cfg::Param* param3 = new cfg::Param("p3",p3,"float param");
00033 cfg::Param* param4 = new cfg::Param("p4",p4,"double param");
00034 cfg::Param* param5 = new cfg::Param("p5",p5,"string param");
00035 cfg::Param* param6 = new cfg::Param("p6",p6,"Mmm pi");
00036
00037 cfg::Config cfg("TestConfig","default",__FILE__);
00038 cfg.AdoptParam(param1);
00039 cfg.AdoptParam(param2);
00040 cfg.AdoptParam(param3);
00041 cfg.AdoptParam(param4);
00042 cfg.AdoptParam(param5);
00043 cfg.AdoptParam(param6);
00044
00045 cfg("p1").Get(po1); if (po1 != p1) abort();
00046 cfg("p2").Get(po2); if (po2 != p2) abort();
00047 cfg("p3").Get(po3); if (po3 != p3) abort();
00048 cfg("p4").Get(po4); if (po4 != p4) abort();
00049 cfg("p5").Get(po5); if (po5 != p5) abort();
00050 cfg("p6").Get(po6); if (po6 != p6) abort();
00051
00052 std::cerr <<
00053 cfg.GetName() << "." <<
00054 cfg.GetVersion() <<
00055 "(" << cfg.GetSource() << ") " << std::endl <<
00056 cfg("p1") << " " <<
00057 cfg("p2") << " " <<
00058 cfg("p3") << " " <<
00059 cfg("p4") << " " <<
00060 cfg("p5") << " " <<
00061 cfg("p6") << " " <<
00062 std::endl;
00063
00064 try {
00065 int dne;
00066 cfg("DoesNotExist").Get( dne );
00067 }
00068 catch (cfg::Exception& e) {
00069 std::cerr
00070 << "|** Caught exception produced when trying to extract "
00071 << "non-existent parameter: " << std::endl
00072 << "|** Correct behavior." << std::endl;
00073 }
00074
00075 std::cout << "*== Write cfg as XML:" << std::endl;
00076 std::cout << cfg.AsXML() << std::endl;
00077 std::cout << "*==" << std::endl;
00078
00079 return 0;
00080 }
00081