This interface is used to extent the DiCE API. More...
#include <iextension_api.h>
Public Member Functions | |
User classes | |
virtual Sint32 | register_class (const char *class_name, base::Uuid uuid, IUser_class_factory *factory)=0 |
Registers a class with the DiCE API. More... | |
template<class T> | |
Sint32 | register_class (const char *class_name) |
Registers a class with the DiCE API. More... | |
virtual Sint32 | unregister_class (const char *class_name, base::Uuid uuid)=0 |
Unregisters a class with the DiCE API. More... | |
template<class T> | |
Sint32 | unregister_class (const char *class_name) |
Unregisters a class with the DiCE API. More... | |
Importers and exporters | |
virtual Sint32 | register_importer (IImporter *importer)=0 |
Registers a new importer with the DiCE API. More... | |
virtual Sint32 | register_exporter (IExporter *exporter)=0 |
Registers a new exporter with the DiCE API. More... | |
virtual Sint32 | unregister_importer (IImporter *importer)=0 |
Unregisters an importer registered with the DiCE API. More... | |
virtual Sint32 | unregister_exporter (IExporter *exporter)=0 |
Unregisters an exporter registered with the DiCE API. More... | |
Structure declarations | |
virtual Sint32 | register_structure_decl (const char *structure_name, const IStructure_decl *decl)=0 |
Registers a structure declaration with the DiCE API. More... | |
virtual Sint32 | unregister_structure_decl (const char *structure_name)=0 |
Unregisters a structure declaration with the DiCE API. More... | |
Enum declarations | |
virtual Sint32 | register_enum_decl (const char *enum_name, const IEnum_decl *decl)=0 |
Registers an enum declaration with the DiCE API. More... | |
virtual Sint32 | unregister_enum_decl (const char *enum_name)=0 |
Unregisters an enum declaration with the DiCE API. More... | |
Public Member Functions inherited from mi::base::IInterface | |
virtual Uint32 | retain () const =0 |
Increments the reference count. More... | |
virtual Uint32 | release () const =0 |
Decrements the reference count. More... | |
virtual const IInterface * | get_interface (const Uuid &interface_id) const =0 |
Acquires a const interface from another. More... | |
template<class T> | |
const T * | get_interface () const |
Acquires a const interface from another. More... | |
virtual IInterface * | get_interface (const Uuid &interface_id)=0 |
Acquires a mutable interface from another. More... | |
template<class T> | |
T * | get_interface () |
Acquires a mutable interface from another. More... | |
virtual Uuid | get_iid () const =0 |
Returns the interface ID of the most derived interface. More... | |
Additional Inherited Members | |
Public Types inherited from mi::base::Interface_declare< 0xdf2dd31e, ... > | |
typedef Interface_declare< id1, ... > | Self |
Own type. More... | |
typedef Uuid_t< id1, ... > | IID |
Declares the interface ID (IID) of this interface. More... | |
Public Types inherited from mi::base::IInterface | |
typedef Uuid_t<0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0> | IID |
Declares the interface ID (IID) of this interface. More... | |
Static Public Member Functions inherited from mi::base::Interface_declare< 0xdf2dd31e, ... > | |
static bool | compare_iid (const Uuid &iid) |
Compares the interface ID iid against the interface ID of this interface and of its ancestors. More... | |
Static Public Member Functions inherited from mi::base::IInterface | |
static bool | compare_iid (const Uuid &iid) |
Compares the interface ID iid against the interface ID of this interface. More... | |
This interface is used to extent the DiCE API.
For example it offers methods to load and to set up plugins.
|
inline |
Registers a class with the DiCE API.
All user-defined classes to be used with the DiCE API must be registered. The only exception are classes that never cross the API boundary, for example, classes only used locally within a plugin. Class registration must be done in mi::neuraylib::IPlugin::init() or before DiCE has been started.
This templated member function is a wrapper of the non-template variant for the user's convenience. It uses the default class factory mi::neuraylib::User_class_factory specialized for T.
class_name | The class name under which the class is to be registered. The class name must consist only of alphanumeric characters or underscores, must not start with an underscore, and must not be the empty string. |
class_name
or UUID T::IID()
.NULL
pointer).
|
pure virtual |
Registers a class with the DiCE API.
All user-defined classes to be used with the DiCE API must be registered. The only exception are classes that never cross the API boundary, for example, classes only used locally within a plugin. Class registration must be done in mi::neuraylib::IPlugin::init() or before DiCE has been started.
class_name | The class name under which the class is to be registered. The class name must consist only of alphanumeric characters or underscores, must not start with an underscore, and must not be the empty string. |
uuid | The class ID of the class. You can simply pass IID() of your class derived from mi::neuraylib::User_class. |
factory | The factory method of the class. |
class_name
or UUID uuid
.NULL
pointer).
|
pure virtual |
Registers an enum declaration with the DiCE API.
enum_name | The name to be used to refer to this enum declaration. The name must consist only of alphanumeric characters or underscores, must not start with an underscore, and must not be the empty string. |
decl | The enum declaration. The declaration is internally cloned such that subsequent changes have no effect on the registered declaration. |
enum_name
.NULL
pointer).
|
pure virtual |
Registers a new exporter with the DiCE API.
Importer registration must be done in mi::neuraylib::IPlugin::exit() or before DiCE has been started.
exporter | The new exporter to register. |
NULL
pointer).
|
pure virtual |
Registers a new importer with the DiCE API.
Importer registration must be done in mi::neuraylib::IPlugin::exit() or before DiCE has been started.
importer | The new importer to register. |
NULL
pointer).
|
pure virtual |
Registers a structure declaration with the DiCE API.
Note that the type names of the structure members are not checked for validity here (except for cycles). Thus, it is possible that this methods succeeds, but creating an instance of the type structure_name
will fail.
structure_name | The name to be used to refer to this structure declaration. The name must consist only of alphanumeric characters or underscores, must not start with an underscore, and must not be the empty string. |
decl | The structure declaration. The declaration is internally cloned such that subsequent changes have no effect on the registered declaration. |
structure_name
.NULL
pointer).structure_name
would cause an infinite cycle of nested structure types.
|
inline |
Unregisters a class with the DiCE API.
Class unregistration must be done in mi::neuraylib::IPlugin::exit() or after DiCE has been shut down.
This templated member function is a wrapper of the non-template variant for the user's convenience. It uses the default class factory mi::neuraylib::User_class_factory specialized for T.
class_name | The class name under which the class was registered. |
class_name
and/or UUID uuid
.NULL
pointer).
|
pure virtual |
Unregisters a class with the DiCE API.
Class unregistration must be done in mi::neuraylib::IPlugin::exit() or after DiCE has been shut down.
class_name | The class name under which the class was registered. |
uuid | The class ID of the class. You can simply pass IID() of your class derived from mi::neuraylib::User_class. |
class_name
and/or UUID uuid
.NULL
pointer).
|
pure virtual |
Unregisters an enum declaration with the DiCE API.
enum_name | The name of the enum declaration to be unregistered. |
enum_name
.NULL
pointer).
|
pure virtual |
Unregisters an exporter registered with the DiCE API.
Unregistration must be done in mi::neuraylib::IPlugin::exit() or after DiCE has been shut down.
exporter | The exporter to unregister. |
NULL
pointer).
|
pure virtual |
Unregisters an importer registered with the DiCE API.
Unregistration must be done in mi::neuraylib::IPlugin::exit() or after DiCE has been shut down.
importer | The importer to unregister. |
NULL
pointer).
|
pure virtual |
Unregisters a structure declaration with the DiCE API.
structure_name | The name of the structure declaration to be unregistered. |
structure_name
.NULL
pointer).