Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

testCfgConfig.cc

Go to the documentation of this file.
00001 
00002 // $Id: testCfgConfig.cc,v 1.2 2008/11/08 16:19:37 fmwk Exp $
00003 //
00005 //
00006 // messier@indiana.edu
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 

Generated on Sat Nov 7 04:46:59 2009 for NOvA Offline by  doxygen 1.3.9.1