template<typename Enum>
struct senf::console::FlagCollection< Enum >
Bit-mask flag argument type.
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.
void func(unsigned flags);
enum MyFlags { Foo = 1,
Bar = 2,
Baz = 4,
Doo = 8 };
consoleDir.add(
"func", fty::Command<
void (FlagCollection<MyFlags>)>(&func));
To use the FlagCollection class
\li you need a function which takes a bit-mask of flags as argument
\li you define and register an enum with all possible flag values
\li you register the function with a FlagCollection argument type using \c boost::function
for the conversion. This is also possible for return values.
The nice thing is, that \c 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 178 of file Utility.hh.