Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
EnumDict< E, OWNER > Struct Template Reference

Wrapper for unique (static) dictionary of enum values. More...

#include <EnumFlags.h>

Collaboration diagram for EnumDict< E, OWNER >:
Collaboration graph
[legend]

Public Types

typedef drain::Dictionary< std::string, E > dict_t
 

Public Member Functions

const drain::FlagResolver::dict_t dict
 const drain::FlaggerBase<Crit>::dict_t CritFlagger::dict = {{"DATA", DATA}, {"ELANGLE", ELANGLE}, {"TIME", TIME}};
 
const drain::FlagResolver::dict_t dict
 
const drain::FlagResolver::dict_t dict
 
const drain::EnumDict< DataOrder::Crit >::dict_t dict
 const drain::FlaggerBase<Crit>::dict_t CritFlagger::dict = {{"DATA", DATA}, {"ELANGLE", ELANGLE}, {"TIME", TIME}};
 
const drain::EnumDict< DataOrder::Oper >::dict_t dict
 
const drain::EnumDict< DataSelector::Prf >::dict_t dict
 
const drain::EnumDict< rack::ODIM::Version >::dict_t dict
 
const drain::EnumDict< ProductConf::OutputDataVerbosity >::dict_t dict
 
const drain::EnumDict< ProductConf::OutputDataVerbosity >::dict_t dict
 
const drain::EnumDict< Role >::dict_t dict
 
const drain::EnumDict< E2 >::dict_t dict
 
const drain::EnumDict< Luokko >::dict_t dict
 
const drain::EnumDict< AlignBase::Pos >::dict_t dict
 
const drain::EnumDict< AlignBase::Axis >::dict_t dict
 
const drain::EnumDict< AlignSVG::Owner >::dict_t dict
 
const drain::EnumDict< AlignSVG::HorzAlign >::dict_t dict
 
const drain::EnumDict< AlignSVG::VertAlign >::dict_t dict
 
const drain::EnumDict< Alignment<> >::dict_t dict
 Combines both EnumDict<Alignment<> >:
 
const drain::EnumDict< LayoutSVG::Direction >::dict_t dict
 
const drain::EnumDict< AlignSVG::Topol >::dict_t dict
 
const drain::EnumDict< AlignBase::Axis >::dict_t dict
 
const drain::EnumDict< AlignBase::Pos >::dict_t dict
 
const drain::EnumDict< AlignSVG::Owner >::dict_t dict
 
const drain::EnumDict< AlignSVG::Topol >::dict_t dict
 
const drain::EnumDict< AlignSVG::HorzAlign >::dict_t dict
 Dictionary of horizontal (LEFT,CENTER,RIGHT) flags.
 
const drain::EnumDict< AlignSVG::VertAlign >::dict_t dict
 Dictionary of vertical (TOP,MIDDLE,BOTTOM) flags.
 
const drain::EnumDict< Alignment<> >::dict_t dict
 Dictionary combining horizontal (LEFT,CENTER,RIGHT) and vertical (TOP,MIDDLE,BOTTOM) flags.
 
const EnumDict< LayoutSVG::Direction >::dict_t dict
 
const drain::EnumDict< FileGeoTIFF::TiffCompliance >::dict_t dict
 
const EnumDict< image::svg::tag_t >::dict_t dict
 
const EnumDict< image::svg::tag_t >::dict_t dict
 
const drain::EnumDict< NodeGDAL::tag_t >::dict_t dict
 
const EnumDict< image::NodeGDAL::tag_t >::dict_t dict
 
const drain::EnumDict< Projector::PROJDEF_variant >::dict_t dict
 
const drain::EnumDict< Projector::PROJDEF_variant >::dict_t dict
 
const drain::EnumDict< Status >::dict_t dict
 
const drain::EnumDict< Status >::dict_t dict
 
const drain::EnumDict< TextStyle::Style >::dict_t dict
 
const drain::EnumDict< TextStyle::Colour >::dict_t dict
 
const drain::EnumDict< TextStyle::Line >::dict_t dict
 
const drain::EnumDict< BaseHTML::tag_t >::dict_tgetDict ()
 
const drain::EnumDict< BaseHTML::tag_t >::dict_t dict
 
const drain::EnumDict< int, XML >::dict_t dict
 
const drain::EnumDict< int, XML >::dict_t dict
 
const drain::EnumDict< Reader::Mode >::dict_t dict
 
const drain::EnumDict< hi5::Reader::Mode >::dict_t dict
 
const drain::EnumDict< Hdf5Context::Hi5Role >::dict_t dict
 
const drain::EnumDict< Hdf5Context::Hi5RoleFlagger >::dict_t dict
 
const drain::EnumDict< rack::SvgInclude >::dict_t dict
 
const drain::EnumDict< rack::PanelConfSVG::ElemClass >::dict_t dict
 
const drain::EnumDict< rack::SvgInclude >::dict_t dict
 
const drain::EnumDict< rack::PanelConfSVG::ElemClass >::dict_t dict
 

Static Public Member Functions

static const dict_tgetDict ()
 
static const std::string & str (const E &value)
 Convenience.
 
static bool setValue (const std::string &key, E &value)
 Convenience function for leniently setting string values to separate enum lists. More...
 
static E getValue (const E &value, bool lenient=true)
 Convenience for object.set(...) like commands. More...
 
static E getValue (const std::string &key, bool lenient=true)
 Convenience for object.set(...) like commands. More...
 
static E getValue (const char *key, bool lenient=true)
 Convenience for object.set(...) like commands. More...
 

Static Public Attributes

static const dict_t dict
 

Detailed Description

template<class E, class OWNER = E>
struct drain::EnumDict< E, OWNER >

Wrapper for unique (static) dictionary of enum values.

DrainCore

Template is needed to create a unique, shared (static) dict object for each template.

Member Function Documentation

◆ getValue() [1/3]

static E getValue ( const char *  key,
bool  lenient = true 
)
inlinestatic

Convenience for object.set(...) like commands.

Parameters
lenient- when value not found, only return empty, do not throw exception.
Returns
enum value of the key

◆ getValue() [2/3]

static E getValue ( const E &  value,
bool  lenient = true 
)
inlinestatic

Convenience for object.set(...) like commands.

Returns
enum value of the key

Note: cannot return (const E &) as storage type is (long) int.

◆ getValue() [3/3]

static E getValue ( const std::string &  key,
bool  lenient = true 
)
inlinestatic

Convenience for object.set(...) like commands.

Parameters
lenient- when key not found, only return empty, do not throw exception.
Returns
enum value of the key

◆ setValue()

static bool setValue ( const std::string &  key,
E &  value 
)
inlinestatic

Convenience function for leniently setting string values to separate enum lists.

String arguments tested against several dictionaries.

Template Parameters
E2- any enum type, for which dict has been defined.

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