#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.