Caffa  1.1.0
C++ Application Framework for Embedded Systems with introspection
Public Types | Public Member Functions | Static Public Member Functions | List of all members
caffa::AppEnum< Enum > Class Template Reference

#include <cafAppEnum.h>

Public Types

using DataType = Enum
 

Public Member Functions

 AppEnum (Enum value)
 
 AppEnum (const std::string &value)
 
Enum value () const
 
auto operator (const AppEnum &rhs) const =default
 
AppEnumoperator= (Enum value)
 
void setFromLabel (const std::string &label)
 
void setFromIndex (size_t index)
 
std::optional< Enum > enumVal (const std::string &label) const
 
std::optional< Enum > enumVal (size_t index) const
 
size_t size () const
 
std::vector< std::string > labels () const
 
std::string label () const
 
std::string label (Enum enumValue) const
 
size_t index (Enum enumValue) const
 

Static Public Member Functions

static bool isValid (const std::string &label)
 
static bool isValid (size_t index)
 
static size_t validSize ()
 
static std::vector< std::string > validLabels ()
 
static size_t getIndex (Enum enumValue)
 
static std::string getLabel (Enum enumValue)
 

Detailed Description

template<typename Enum>
class caffa::AppEnum< Enum >

An enum class wrapper to enable introspection and automatic I/O on enums.

Usage, in header: enum class SomeEnum { A = 2, B = 7 }; caffa::AppEnum<SomeEnum, "SomeEnum"> myEnum;

In cpp file: namespace caffa { template<> void caffa::AppEnum<SomeEnum, "SomeEnum">::setUp() { addItem(SomeEnum::A, "A"); addItem(SomeEnum::B, "B"); setDefault(SomeEnum::B); } }


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