SchemaMacros.h File Reference
Include dependency graph for SchemaMacros.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define MC_RTC_SCHEMA(SchemaT, BaseT)
 
#define MC_RTC_NEW_SCHEMA(SchemaT)   MC_RTC_SCHEMA(SchemaT, mc_rtc::schema::details::EmptySchema)
 
#define MC_RTC_SCHEMA_MEMBER(T, TYPE, NAME, DESCRIPTION, REQUIRED, DEFAULT, ...)
 
#define MC_RTC_SCHEMA_REQUIRED_MEMBER(T, TYPE, NAME, DESCRIPTION, DEFAULT, ...)   MC_RTC_PP_ID(MC_RTC_SCHEMA_MEMBER(T, TYPE, NAME, DESCRIPTION, mc_rtc::schema::ValueFlag::All, DEFAULT, ##__VA_ARGS__))
 
#define MC_RTC_SCHEMA_OPTIONAL_MEMBER(T, TYPE, NAME, DESCRIPTION, DEFAULT, ...)
 
#define MC_RTC_SCHEMA_DEFAULT_MEMBER(T, TYPE, NAME, DESCRIPTION, REQUIRED, ...)   MC_RTC_PP_ID(MC_RTC_SCHEMA_MEMBER(T, TYPE, NAME, DESCRIPTION, REQUIRED, mc_rtc::Default<TYPE>::value, ##__VA_ARGS__))
 
#define MC_RTC_SCHEMA_REQUIRED_DEFAULT_MEMBER(T, TYPE, NAME, DESCRIPTION, ...)   MC_RTC_PP_ID(MC_RTC_SCHEMA_DEFAULT_MEMBER(T, TYPE, NAME, DESCRIPTION, mc_rtc::schema::ValueFlag::All, ##__VA_ARGS__))
 
#define MC_RTC_SCHEMA_OPTIONAL_DEFAULT_MEMBER(T, TYPE, NAME, DESCRIPTION, ...)
 

Macro Definition Documentation

◆ MC_RTC_NEW_SCHEMA

#define MC_RTC_NEW_SCHEMA (   SchemaT)    MC_RTC_SCHEMA(SchemaT, mc_rtc::schema::details::EmptySchema)

◆ MC_RTC_SCHEMA

#define MC_RTC_SCHEMA (   SchemaT,
  BaseT 
)

◆ MC_RTC_SCHEMA_DEFAULT_MEMBER

#define MC_RTC_SCHEMA_DEFAULT_MEMBER (   T,
  TYPE,
  NAME,
  DESCRIPTION,
  REQUIRED,
  ... 
)    MC_RTC_PP_ID(MC_RTC_SCHEMA_MEMBER(T, TYPE, NAME, DESCRIPTION, REQUIRED, mc_rtc::Default<TYPE>::value, ##__VA_ARGS__))

Declare a Schema<T> member of type TYPE with a default value, only specify REQUIRED

◆ MC_RTC_SCHEMA_MEMBER

#define MC_RTC_SCHEMA_MEMBER (   T,
  TYPE,
  NAME,
  DESCRIPTION,
  REQUIRED,
  DEFAULT,
  ... 
)
Value:
public: \
DEFAULT, std::integral_constant<mc_rtc::schema::ValueFlag, REQUIRED>{}, ##__VA_ARGS__); \
\
private: \
inline static const bool NAME##_registered_ = \
T::ops_.registerValue(mc_rtc::schema::details::MemberPointerWrapper<&T::NAME>{}, #NAME, DESCRIPTION, \
std::integral_constant<mc_rtc::schema::ValueFlag, REQUIRED>{}, ##__VA_ARGS__); \
\
public:

Declare a T member of type TYPE, specify REQUIRED and DEFAULT value

◆ MC_RTC_SCHEMA_OPTIONAL_DEFAULT_MEMBER

#define MC_RTC_SCHEMA_OPTIONAL_DEFAULT_MEMBER (   T,
  TYPE,
  NAME,
  DESCRIPTION,
  ... 
)
Value:
MC_RTC_SCHEMA_DEFAULT_MEMBER(T, TYPE, NAME, DESCRIPTION, mc_rtc::schema::ValueFlag::Interactive, ##__VA_ARGS__))

Declare an optional Schema<T> member of type TYPE with a default value

◆ MC_RTC_SCHEMA_OPTIONAL_MEMBER

#define MC_RTC_SCHEMA_OPTIONAL_MEMBER (   T,
  TYPE,
  NAME,
  DESCRIPTION,
  DEFAULT,
  ... 
)
Value:
##__VA_ARGS__))

Declare an optional Schema<T> member of type TYPE, only specify DEFAULT

◆ MC_RTC_SCHEMA_REQUIRED_DEFAULT_MEMBER

#define MC_RTC_SCHEMA_REQUIRED_DEFAULT_MEMBER (   T,
  TYPE,
  NAME,
  DESCRIPTION,
  ... 
)    MC_RTC_PP_ID(MC_RTC_SCHEMA_DEFAULT_MEMBER(T, TYPE, NAME, DESCRIPTION, mc_rtc::schema::ValueFlag::All, ##__VA_ARGS__))

Declare a required Schema<T> member of type TYPE with a default value

◆ MC_RTC_SCHEMA_REQUIRED_MEMBER

#define MC_RTC_SCHEMA_REQUIRED_MEMBER (   T,
  TYPE,
  NAME,
  DESCRIPTION,
  DEFAULT,
  ... 
)    MC_RTC_PP_ID(MC_RTC_SCHEMA_MEMBER(T, TYPE, NAME, DESCRIPTION, mc_rtc::schema::ValueFlag::All, DEFAULT, ##__VA_ARGS__))

Declare a required Schema<T> member of type TYPE, only specify DEFAULT

MC_RTC_PP_ID
#define MC_RTC_PP_ID(x)
Definition: pp_id.h:8
mc_rtc::schema::details::MemberPointerWrapper
Definition: Schema.h:16
mc_rtc::schema::ValueFlag::Interactive
@ Interactive
MC_RTC_SCHEMA_DEFAULT_MEMBER
#define MC_RTC_SCHEMA_DEFAULT_MEMBER(T, TYPE, NAME, DESCRIPTION, REQUIRED,...)
Definition: SchemaMacros.h:116
MC_RTC_SCHEMA_MEMBER
#define MC_RTC_SCHEMA_MEMBER(T, TYPE, NAME, DESCRIPTION, REQUIRED, DEFAULT,...)
Definition: SchemaMacros.h:94
mc_rtc::schema::details::get_default
const T & get_default(const T &default_, const std::integral_constant< ValueFlag, Flags > &={}, const details::Choices< HasChoices > &choices={})
Definition: Schema.h:381