senf::console::FlagCollection< Enum > Struct Template Reference
[Special console utility types]

Bit-mask flag argument type. More...

#include <senf/Utils/Console/Utility.hh>

List of all members.


Detailed Description

template<class 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.

// 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

  • you need a function which takes a bit-mask of flags as argument
  • you define and register an enum with all possible flag values
  • you register the function with a FlagCollection argument type using boost::function for the conversion. This is also possible for return values.
The nice thing is, that 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

Constructor & Destructor Documentation

template<class Enum >
senf::console::FlagCollection< Enum >::
FlagCollection ()

Definition at line 178 of file Utility.hh.

template<class Enum >
senf::console::FlagCollection< Enum >::
FlagCollection ( unsigned long  value_ )

Definition at line 179 of file Utility.hh.

template<class Enum >
senf::console::FlagCollection< Enum >::
FlagCollection ( Enum  value_ )

Definition at line 180 of file Utility.hh.


Member Function Documentation

template<class Enum >
senf::console::FlagCollection< Enum >::operator unsigned
long ()

Definition at line 177 of file Utility.hh.


Member Data Documentation

template<class Enum >
unsigned long senf::console::FlagCollection< Enum >::
value

Definition at line 181 of file Utility.hh.


The documentation for this struct was generated from the following file: