class BoolOption : public Option
{
public:
+ enum class BoolOptionType
+ {
+ simple,
+ pairedAble,
+ pairedNo,
+ };
+
BoolOption(bool const defaultvalue, char shortopt, char const *longopt = 0,
- String const &shorthelp = String(),
- OptionSet &owner=GetOption::GetInstance());
+ std::string const &shorthelp = std::string(),
+ BoolOptionType type = BoolOptionType::simple,
+ OptionSet &owner=GetOption::GetInstance());
virtual ~ BoolOption ();
- virtual char const shortOption () const;
- virtual struct option longOption () const;
- virtual String const shortHelp () const;
- virtual bool Process (char const *);
+ virtual std::string const shortOption () const;
+ virtual std::string const longOption () const;
+ virtual std::vector<std::string> const & longOptionPrefixes () const;
+ virtual std::string const shortHelp () const;
+ virtual Result Process (char const *, int);
+ virtual Argument argument () const;
operator bool () const;
-
private:
bool _value;
bool _ovalue;
char _shortopt;
char const *_longopt;
- String _shorthelp;
+ std::string _shorthelp;
+ BoolOptionType _type;
};
#endif // _BOOLOPTION_H_