COIN-OR::LEMON - Graph Library

Changeset 214:60eecd3fe37a in lemon-1.2 for lemon/arg_parser.h


Ignore:
Timestamp:
07/13/08 23:05:25 (11 years ago)
Author:
Alpar Juttner <alpar@…>
Branch:
default
Phase:
public
Message:

Some cleanup in ArgParser? API (ticket #116)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lemon/arg_parser.h

    r209 r214  
    272272    ///@}
    273273
    274     void show(std::ostream &os,Opts::iterator i);
    275     void show(std::ostream &os,Groups::iterator i);
    276     void showHelp(Opts::iterator i);
    277     void showHelp(std::vector<OtherArg>::iterator i);
    278     void shortHelp();
    279     void showHelp();
    280 
    281     void unknownOpt(std::string arg);
    282 
    283     void requiresValue(std::string arg, OptType t);
    284     void checkMandatories();
     274  private:
     275    void show(std::ostream &os,Opts::const_iterator i) const;
     276    void show(std::ostream &os,Groups::const_iterator i) const;
     277    void showHelp(Opts::const_iterator i) const;
     278    void showHelp(std::vector<OtherArg>::const_iterator i) const;
     279
     280    void unknownOpt(std::string arg) const;
     281
     282    void requiresValue(std::string arg, OptType t) const;
     283    void checkMandatories() const;
     284
     285    void shortHelp() const;
     286    void showHelp() const;
     287  public:
    285288
    286289    ///Start the parsing process
     
    294297
    295298    ///Give back the command name (the 0th argument)
    296     const std::string &commandName() { return _command_name; }
     299    const std::string &commandName() const { return _command_name; }
    297300
    298301    ///Check if an opion has been given to the command.
    299     bool given(std::string op)
    300     {
    301       Opts::iterator i = _opts.find(op);
     302    bool given(std::string op) const
     303    {
     304      Opts::const_iterator i = _opts.find(op);
    302305      return i!=_opts.end()?i->second.set:false;
    303306    }
     
    312315    class RefType
    313316    {
    314       ArgParser &_parser;
     317      const ArgParser &_parser;
    315318      std::string _name;
    316319    public:
    317320      ///\e
    318       RefType(ArgParser &p,const std::string &n) :_parser(p),_name(n) {}
     321      RefType(const ArgParser &p,const std::string &n) :_parser(p),_name(n) {}
    319322      ///\e
    320323      operator bool()
    321324      {
    322         Opts::iterator i = _parser._opts.find(_name);
     325        Opts::const_iterator i = _parser._opts.find(_name);
    323326        LEMON_ASSERT(i!=_parser._opts.end(),
    324327                     std::string()+"Unkown option: '"+_name+"'");
     
    330333      operator std::string()
    331334      {
    332         Opts::iterator i = _parser._opts.find(_name);
     335        Opts::const_iterator i = _parser._opts.find(_name);
    333336        LEMON_ASSERT(i!=_parser._opts.end(),
    334337                     std::string()+"Unkown option: '"+_name+"'");
     
    340343      operator double()
    341344      {
    342         Opts::iterator i = _parser._opts.find(_name);
     345        Opts::const_iterator i = _parser._opts.find(_name);
    343346        LEMON_ASSERT(i!=_parser._opts.end(),
    344347                     std::string()+"Unkown option: '"+_name+"'");
     
    352355      operator int()
    353356      {
    354         Opts::iterator i = _parser._opts.find(_name);
     357        Opts::const_iterator i = _parser._opts.find(_name);
    355358        LEMON_ASSERT(i!=_parser._opts.end(),
    356359                     std::string()+"Unkown option: '"+_name+"'");
     
    366369    ///Give back the value of an option.
    367370    ///\sa RefType
    368     RefType operator[](const std::string &n)
     371    RefType operator[](const std::string &n) const
    369372    {
    370373      return RefType(*this, n);
     
    375378    ///Give back a reference to a vector consisting of the program arguments
    376379    ///not starting with a '-' character.
    377     std::vector<std::string> &files() { return _file_args; }
     380    const std::vector<std::string> &files() const { return _file_args; }
    378381
    379382  };
Note: See TracChangeset for help on using the changeset viewer.