#include <senf/Utils/Console/Utility.hh>
senf::console::FlagCollection supplies a special argument type for use in registering console commands. This argument type is used to represent a bit-mask of single flags.
// Function taking a flags argument void func(unsigned flags); // Enum containing all the possible flag values enum MyFlags { Foo = 1, Bar = 2, Baz = 4, Doo = 8 }; SENF_CONSOLE_REGISTER_ENUM(MyFlags, (Foo)(Bar)(Baz)(Boo)); // Register the function with a FlagCollection argument type consoleDir.add("func", fty::Command<void (FlagCollection<MyFlags>)>(&func));
To use the FlagCollection class
boost::function for the conversion. This is also possible for return values.boot::function supports compatible argument types and does automatic type conversion. Since a FlagCollection is convertible to and from unsigned long, this conversion will work.
After registering this function, you can call it with a collection of flags as argument
console:/$ help func Usage: func arg11:MyFlags console:/$ func Foo console:/$ func (Foo Boo)
Definition at line 175 of file Utility.hh.
Public Member Functions |
|
| operator unsigned long () const | |
| FlagCollection () | |
| FlagCollection (unsigned long value_) | |
| FlagCollection (Enum value_) | |
Public Attributes |
|
| unsigned long | value |
| senf::console::FlagCollection< Enum >:: | ||||
| FlagCollection | () | |||
Definition at line 178 of file Utility.hh.
| senf::console::FlagCollection< Enum >:: | ||||
| FlagCollection | ( | unsigned long | value_ | ) |
Definition at line 179 of file Utility.hh.
| senf::console::FlagCollection< Enum >:: | ||||
| FlagCollection | ( | Enum | value_ | ) |
Definition at line 180 of file Utility.hh.
| senf::console::FlagCollection< Enum >::operator unsigned | ||||
| long | () | |||
Definition at line 177 of file Utility.hh.
| unsigned long senf::console::FlagCollection< Enum >:: | ||||
| value | ||||
Definition at line 181 of file Utility.hh.