15 #ifndef CORE_PARAM_PARAM_GROUP_H_
16 #define CORE_PARAM_PARAM_GROUP_H_
20 #include "cpptoml/cpptoml.h"
62 #define BDM_PARAM_GROUP_HEADER(name, version_id) \
63 static const ParamGroupUid kUid; \
66 ParamGroup* NewCopy() const override { return new name(*this); } \
67 ParamGroupUid GetUid() const override { return kUid; } \
70 BDM_CLASS_DEF_OVERRIDE(name, version_id); \
This class generates unique ids for parameter groups. Thread safe.
std::atomic< ParamGroupUid > counter_
static ParamGroupUidGenerator * Get()
ParamGroupUidGenerator(const ParamGroupUidGenerator &)=delete
ParamGroupUidGenerator & operator=(const ParamGroupUidGenerator &)=delete
Interface for parameter groups.
virtual ParamGroupUid GetUid() const =0
BDM_CLASS_DEF(ParamGroup, 1)
virtual void AssignFromConfig(const std::shared_ptr< cpptoml::table > &)
virtual ParamGroup * NewCopy() const =0