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
00022 bool po1;
00023 int po2;
00024 float po3;
00025 double po4;
00026 std::string po5;
00027
00028 cfg::Param* param1 = new cfg::Param("p1",p1,"bool param");
00029 cfg::Param* param2 = new cfg::Param("p2",p2,"int param");
00030 cfg::Param* param3 = new cfg::Param("p3",p3,"float param");
00031 cfg::Param* param4 = new cfg::Param("p4",p4,"double param");
00032 cfg::Param* param5 = new cfg::Param("p5",p5,"string param");
00033
00034 cfg::Config cfg("TestConfig","default",__FILE__);
00035 cfg.AdoptParam(param1);
00036 cfg.AdoptParam(param2);
00037 cfg.AdoptParam(param3);
00038 cfg.AdoptParam(param4);
00039 cfg.AdoptParam(param5);
00040
00041 cfg("p1").Get(po1); if (po1 != p1) abort();
00042 cfg("p2").Get(po2); if (po2 != p2) abort();
00043 cfg("p3").Get(po3); if (po3 != p3) abort();
00044 cfg("p4").Get(po4); if (po4 != p4) abort();
00045 cfg("p5").Get(po5); if (po5 != p5) abort();
00046
00047 std::cerr <<
00048 cfg.GetName() << "." <<
00049 cfg.GetVersion() <<
00050 "(" << cfg.GetSource() << ") " << std::endl <<
00051 cfg("p1") << " " <<
00052 cfg("p2") << " " <<
00053 cfg("p3") << " " <<
00054 cfg("p4") << " " <<
00055 cfg("p5") << " " <<
00056 std::endl;
00057
00058 try {
00059 int dne;
00060 cfg("DoesNotExist").Get( dne );
00061 }
00062 catch (cfg::Exception& e) {
00063 std::cerr
00064 << "|** Caught exception produced when trying to extract "
00065 << "non-existent parameter: " << std::endl
00066 << "|** Correct behavior." << std::endl;
00067 }
00068
00069 return 0;
00070 }
00071