Go to the documentation of this file.
30 #ifndef EXOTICA_CORE_PROPERTY_H_
31 #define EXOTICA_CORE_PROPERTY_H_
37 #include <boost/any.hpp>
38 #include <initializer_list>
47 boost::any
Get()
const;
53 Property(
const std::string& prop_name);
56 Property(std::initializer_list<boost::any> val);
61 const std::string&
GetName()
const;
75 Initializer(
const std::string&
name,
const std::map<std::string, boost::any>& properties);
76 const std::string&
GetName()
const;
109 template <class C, typename = typename std::enable_if<std::is_base_of<InitializerBase, C>::value, C>::type>
123 return C().GetTemplate();
128 return C().GetAllTemplates();
143 #endif // EXOTICA_CORE_PROPERTY_H_
void SetName(const std::string &name)
const std::string & GetName() const
const std::string & GetName() const
std::vector< std::string > GetPropertyNames() const
virtual void InstantiateInternal(const Initializer &init)=0
boost::any GetProperty(const std::string &name) const
InitializerBase()=default
bool IsInitializerVectorType() const
Property(const std::string &prop_name)
virtual void Instantiate(const C &init)
const C & GetParameters() const
std::vector< Initializer > GetAllTemplates() const override
virtual ~InstantiableBase()=default
virtual std::vector< Initializer > GetAllTemplates() const =0
virtual void InstantiateBase(const Initializer &)
virtual Initializer GetInitializerTemplate()=0
std::map< std::string, Property > properties_
void InstantiateInternal(const Initializer &init) override
bool HasProperty(const std::string &name) const
void AddProperty(const Property &prop)
void SetProperty(const std::string &name, boost::any)
virtual std::vector< Initializer > GetAllTemplates() const =0
Initializer GetInitializerTemplate() override
InstantiableBase()=default
virtual void Check(const Initializer &other) const =0
void init(const M_string &remappings)
virtual ~InitializerBase()=default
virtual Initializer GetTemplate() const =0
std::string GetType() const
bool IsStringType() const
exotica_core
Author(s): Yiming Yang, Michael Camilleri
autogenerated on Fri Aug 2 2024 08:43:02