Template Class CSdvObjectClass#

Inheritance Relationships#

Base Type#

Class Documentation#

template<class TSdvObject>
class CSdvObjectClass : public sdv::ISdvObjectClassInfo#

SDV object creator class. Used to define the SDV class object and register its definition into the system as welll a as providing the creation interface for creating an object instance.

Template Parameters:

TSdvObject – Class type of the SDV object derived from CSdvObject.

Public Functions

inline CSdvObjectClass()#

Constructor assigning the SDV prototype to the module.

CSdvObjectClass(CSdvObjectClass&) = delete#
CSdvObjectClass(CSdvObjectClass&&) = delete#
CSdvObjectClass &operator=(CSdvObjectClass&) = delete#
CSdvObjectClass &operator=(CSdvObjectClass&&) = delete#
inline virtual ~CSdvObjectClass()#

Destructor revoking the object prototype.

inline virtual SClassInfo GetClassInfo() const override#

Get the class information struct. Overload of ISdvObjectClassInfo::GetClassInfo.

Returns:

Returns the class information struct.

inline virtual u8string GetClassName() const override#

Get the object class name. Overload of ISdvObjectClassInfo::GetClassName.

Remark

Default implementation gets the information from the object class if not defined in the definition.

Returns:

Returns the class name of the object.

inline virtual sequence<u8string> GetClassAliases() const override#

Get the class name aliases. Overload of ISdvObjectClassInfo::GetClassAliases.

Remark

Default implementation gets the information from the object class if not defined in the definition.

Returns:

Returns a sequence containing zero or more class name aliases.

inline virtual u8string GetDefaultConfig(const u8string &rssTablePrefix) const override#

Get the default config TOML string. Overload of ISdvObjectClassInfo::GetDefaultConfig.

Parameters:

rssTablePrefix[in] Reference to the string containing a table prefix to insert as part of the table key.

Returns:

Returns the TOML string containing the default configuration of the object if exists.

inline virtual u8string GetDefaultObjectName() const override#

Get the default object name. Overload of ISdvObjectClassInfo::GetDefaultObjectName.

Returns:

Returns the default name of the object if exists.

inline virtual EObjectType GetObjectType() const override#

Get the object type. Overload of ISdvObjectClassInfo::GetObjectType.

Remark

Default implementation gets the information from the object class if not defined in the definition.

Returns:

Returns the type of the object

inline virtual uint32_t GetObjectFlags() const override#

Get the object creation flags. Overload of ISdvObjectClassInfo::GetObjectFlags.

Returns:

Returns the current flags of the object

inline virtual sequence<u8string> GetObjectDependencies() const override#

Get object dependencies. Overload of ISdvObjectClassInfo::GetObjectDependencies.

Returns:

Returns a vector containing the class names of the objects this component is dependent on.

inline virtual std::unique_ptr<CSdvObject> CreateObject() override#

Create the SDV object. Overload of ISdvObjectClassInfo::CreateObject.

Returns:

Returns an instance of the SDV object or nullptr when the object could not be created (exception thrown during construction).