Register#
#include "navground/core/register.h"
- Contains a register of sub-classes of - T, registered by name using register_type.- Template Parameters:
- T – The base class of all to be registered sub-classes. 
 - Subclassed by navground::sim::Scenario, navground::sim::StateEstimation, navground::sim::Task - Public Types - A shared pointer to an object of type - T.
 - Factory function to construct objects of type - T.
 - Public Functions - Gets the name associated to the type of an object in the register. - Returns:
- The associated name or empty if not registered. 
 
 - Gets the registered properties. - Returns:
- The properties or empty if not registered. 
 
 - Public Static Functions - The registered factories. - Returns:
- A map of registered factory functions - name -> factory.
 
 - The registered properties. - Returns:
- A map with the list of properties for all registered sub-classes - name -> properties.
 
 - The registered properties. - Returns:
- A map with the list of properties for all registered sub-classes - name -> properties.
 
 - Create a shared pointer of type - T, selecting the factory method by name.- Parameters:
- type – [in] The associated sub-class name. 
- Returns:
- A pointer to an object of a registered sub-class. Returns - nullptr(C++) or- None(Python) in case the desired name is not found.
 
 - Check whether a type name has been registered. - Parameters:
- type – [in] The associated sub-class name. 
- Returns:
- True if the type name has been registered 
 
 - Reads the names of all registered sub-classes. - Returns:
- A collection of names associated with registered sub-classes. 
 
 - Register a sub-class of - T, associating it with a user-defined name.- Parameters:
- type – [in] The user-defined name to be associated with the sub-class. 
- properties – [in] Registered properties 
- schema – [in] An optional schema for custom YAML decoders. 
 
- Template Parameters:
- S – The type of the sub-class 
- Returns:
- The associated name. 
 
 - Gets name associated to the type in the register. - Template Parameters:
- S – The type 
- Returns:
- The associated name or empty if not registered. 
 
 - Gets the registered properties for this type. - Template Parameters:
- S – The type 
- Returns:
- The properties or empty if not registered. 
 
 
Macros#
- 
DECLARE_TYPE#
- Adds type declaration. - static const std::string type; 
- 
DECLARE_PROPERTIES#
- Adds properties declaration. - static const std::map<std::string, navground::core::Property> properties; 
- 
DECLARE_TYPE_AND_PROPERTIES#
- Combine DECLARE_TYPE and DECLARE_PROPERTIES. - static const std::string type; static const std::map<std::string, navground::core::Property> properties;