Struct IObjectFactory#

Inheritance Relationships#

Derived Type#

Struct Documentation#

struct IObjectFactory#

Interface implemented by each module and used for managing the objects.

Subclassed by sdv::CObjectFactory

Public Functions

virtual sdv::sequence<sdv::u8string> GetClassNames() const = 0#

The object class names implemented in the object.

Returns:

Sequence with object class names string.

virtual SClassInfo GetClassInfo(const sdv::u8string &ssClassName) const = 0#

Get the class information.

Parameters:

ssClassName[in] The name of the class object to get the class information for.

Returns:

Returns the class information struct.

virtual IInterfaceAccess *CreateObject(const sdv::u8string &ssClassName) = 0#

Create or get the object using the name from the object class info.

Attention

The objects lifetime is ended by a call to the DestroyObject function or the unloading of the module.

Parameters:

ssClassName[in] The name of the class object to instantiate.

Returns:

Pointer to IInterfaceAccess interface of the object or NULL when the requested object doesn’t exist.

virtual void DestroyObject(IInterfaceAccess *sdvObject) = 0#

Destroy an instantiated object using the pointer to the object instance.

Parameters:

sdvObject[in] The object to destroy

virtual void DestroyAllObjects() = 0#

Destroys all currently instantiated objects in reverse order of creation.

sequence<u8string> GetClassNames() const

The object class names implemented in the object.

Returns:

Sequence with object class names string.

SClassInfo GetClassInfo (in u8string ssClassName) const

Get the class information.

Parameters:

ssClassName[in] The name of the class object to get the class information for.

Returns:

Returns the class information struct.

IInterfaceAccess CreateObject (in u8string ssClassName)

Create or get the object using the name from the object class info.

Attention

The objects lifetime is ended by a call to the DestroyObject function or the unloading of the module.

Parameters:

ssClassName[in] The name of the class object to instantiate.

Returns:

Pointer to IInterfaceAccess interface of the object or NULL when the requested object doesn’t exist.

void DestroyObject (in IInterfaceAccess sdvObject)

Destroy an instantiated object using the pointer to the object instance.

Parameters:

sdvObject[in] The object to destroy

void DestroyAllObjects()

Destroys all currently instantiated objects in reverse order of creation.

Public Static Attributes

static constexpr ::sdv::interface_id _id = 0x7C840B3236DD6933#

Interface ID.