Back to index

nordugrid-arc-nox  1.1.0~rc6
OptionParser.h
Go to the documentation of this file.
00001 // -*- indent-tabs-mode: nil -*-
00002 
00003 #ifndef __ARC_OPTION_H__
00004 #define __ARC_OPTION_H__
00005 
00006 #include <list>
00007 #include <string>
00008 
00009 namespace Arc {
00010 
00011   class OptionBase;
00012 
00013   class OptionParser {
00014 
00015   public:
00016     OptionParser(const std::string& arguments = "",
00017                  const std::string& summary = "",
00018                  const std::string& description = "");
00019 
00020     ~OptionParser();
00021 
00022     void AddOption(const char shortOpt,
00023                    const std::string& longOpt,
00024                    const std::string& optDesc,
00025                    bool& val);
00026 
00027     void AddOption(const char shortOpt,
00028                    const std::string& longOpt,
00029                    const std::string& optDesc,
00030                    const std::string& argDesc,
00031                    int& val);
00032 
00033     void AddOption(const char shortOpt,
00034                    const std::string& longOpt,
00035                    const std::string& optDesc,
00036                    const std::string& argDesc,
00037                    std::string& val);
00038 
00039     void AddOption(const char shortOpt,
00040                    const std::string& longOpt,
00041                    const std::string& optDesc,
00042                    const std::string& argDesc,
00043                    std::list<std::string>& val);
00044 
00045     std::list<std::string> Parse(int argc, char **argv);
00046 
00047   private:
00048     std::string arguments;
00049     std::string summary;
00050     std::string description;
00051     std::list<OptionBase*> options;
00052   };
00053 
00054 } // namespace Arc
00055 
00056 #endif // __ARC_OPTION_H__