This is an object representing the MDL API library. More...
Public Types | |
enum | Status { PRE_STARTING = 0, STARTING = 1, STARTED = 2, SHUTTINGDOWN = 3, SHUTDOWN = 4, FAILURE = 5 } |
The operational status of the library. More... | |
![]() | |
typedef Interface_declare< id1, id2, id3, id4, id5, id6, id7, id8, id9, id10, id11, IInterface > | Self |
Own type. More... | |
typedef Uuid_t< id1, id2, id3, id4, id5, id6, id7, id8, id9, id10, id11 > | IID |
Declares the interface ID (IID) of this interface. More... | |
![]() | |
typedef Uuid_t< 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 > | IID |
Declares the interface ID (IID) of this interface. More... | |
Public Member Functions | |
virtual Uint32 | get_interface_version () const =0 |
Returns the interface version of the MDL API library. More... | |
virtual const char * | get_version () const =0 |
Returns the version of the MDL API library. More... | |
virtual Sint32 | start (bool blocking=true)=0 |
Starts the operation of the MDL API library. More... | |
virtual Sint32 | shutdown (bool blocking=true)=0 |
Shuts down the library. More... | |
virtual Status | get_status () const =0 |
Returns the status of the library. More... | |
virtual base::IInterface * | get_api_component (const base::Uuid &uuid) const =0 |
Returns an API component from the MDL API. More... | |
template<class T > | |
T * | get_api_component () const |
Returns an API component from the MDL API. More... | |
virtual Sint32 | register_api_component (const base::Uuid &uuid, base::IInterface *api_component)=0 |
Registers an API component with the MDL API. More... | |
template<class T > | |
Sint32 | register_api_component (T *api_component) |
Registers an API component with the MDL API. More... | |
virtual Sint32 | unregister_api_component (const base::Uuid &uuid)=0 |
Unregisters an API component with the MDL API. More... | |
template<class T > | |
Sint32 | unregister_api_component () |
Unregisters an API component with the MDL API. More... | |
Additional Inherited Members | |
![]() | |
static bool | compare_iid (const Uuid &iid) |
Compares the interface ID iid against the interface ID of this interface and of its ancestors. More... | |
This is an object representing the MDL API library.
Only one object of this type will exist at a time. It is used for configuration, startup and shutdown of the MDL API library.
The operational status of the library.
|
pure virtual |
Returns an API component from the MDL API.
uuid | The UUID under which the API components was registered. For built-in API components this is the interface ID of the corresponding interface. |
NULL
if the API component is not supported or currently not available.
|
inline |
Returns an API component from the MDL API.
This template variant requires that the API component is registered under the interface ID of the corresponding interface (which is the case for built-in API components).
T | The type of the API components to be queried. |
NULL
if the API component is not supported or currently not available.
|
pure virtual |
Returns the interface version of the MDL API library.
This number changes whenever the abstract interfaces of the MDL API changes.
|
pure virtual |
Returns the status of the library.
|
pure virtual |
Returns the version of the MDL API library.
This string contains the product version, build number, build date, and platform of the current library.
|
pure virtual |
Registers an API component with the MDL API.
API components are a way for plugins to provide access to their functionality. The registration makes the API component available for subsequent calls of get_api_component().
uuid | The ID of the API component to register, e.g., the interface ID of the corresponding interface. |
api_component | The API component to register. |
NULL
pointer).uuid
.
|
inline |
Registers an API component with the MDL API.
API components are a way for plugins to provide access to their functionality. The registration makes the API component available for subsequent calls of get_api_component().
This template variant registers the API component under the interface ID of the corresponding interface.
api_component | The API component to register. |
NULL
pointer).ID
T::IID().
|
pure virtual |
Shuts down the library.
For proper shutdown this may only be called after all transactions have been committed and all rendering is finished.
You also need to release all interface pointers related to functionality obtained after startup before calling this method. In case you use the mi::base::Handle class (or another handle class), you need to make sure that all such handles have been reset or destroyed.
blocking | Unused. The shutdown is always done in blocking mode. |
|
pure virtual |
Starts the operation of the MDL API library.
All configuration which is marked to be done before the start of the library must be done before calling this function. When calling this function the MDL API will start threads and start network operations etc. The MDL API library may not be ready for operation after the call returned if blocking mode is not used.
blocking | Unused. The startup is always done in blocking mode. |
|
pure virtual |
Unregisters an API component with the MDL API.
The API component will no longer be accessible via get_api_component().
uuid | The ID of the API component to unregister. |
uuid
.
|
inline |
Unregisters an API component with the MDL API.
The API component will no longer be accessible via get_api_component().
This template variant requires that the API component was registered under the interface ID of the corresponding interface (which is the case for the template variant of register_api_component()).
T::IID()
.