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

args.h

Go to the documentation of this file.
00001 
00007 #ifndef EXAMPLES_H
00008 #define EXAMPLES_H
00009 
00010 #include "defines.h"
00011 #include <map>
00012 
00013 namespace annie
00014 {
00015 
00016 /*struct Parameter  {
00017     const char *name, * desc;
00018 };*/
00019 
00020 struct NumberParameter /*: Parameter*/  {
00021     const char *name, * desc;
00022     real def;   //default value
00023 };
00024 
00026 struct StringParameter /*: Parameter    */{
00027     const char *name, * desc;
00028     const std::string def;
00029     std::string value;
00030 };
00031 
00032 class ArgParser {
00033 public:
00039     ArgParser(const NumberParameter *numeric, StringParameter *string, PublicValues &ctrl=defaultControl);
00040     void parse(int argc, char *argv[]);
00041     
00043     void print();
00044 protected:
00045     void error(const std::string txt);
00046     void help();
00047     typedef std::map<std::string, const NumberParameter*> Mn;
00048     typedef std::map<std::string, StringParameter*> Ms;
00049     Mn mn;
00050     Ms ms;
00051     PublicValues &control;
00052 };
00053 
00055 void parseArgs(int argc, char *argv[], const NumberParameter *numeric, StringParameter *strin);
00056 
00057 }   //annie
00058 
00059 #endif

Generated on Fri Jun 18 13:18:10 2004 for Annie by doxygen 1.3.5