Abstract interface for user class factories. More...
#include <iuser_class_factory.h>
Public Member Functions | |
virtual base::IInterface * | create (ITransaction *transaction, Uint32 argc, const base::IInterface *argv[])=0 |
Creates an instance of the class for which the factory was registered. 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< 0x37355ece, ... > | |
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< 0x37355ece, ... > | |
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... | |
Abstract interface for user class factories.
The registration of a user-defined class requires a factory which constructs an instance of the class. The factory is passed during class registration, see mi::neuraylib::IDice_configuration::register_serializable_class().
|
pure virtual |
Creates an instance of the class for which the factory was registered.
Each class factory is free to decide which values and types of argc
and argv
are valid. However, it must handle the case transaction
= NULL
, argc
= 0, and argv
= NULL
which is needed for deserialization.
transaction | The transaction in which the instance is created. The transaction can be passed to the class constructor in case you want to create other class instances. Note that the transaction pointer must not be serialized/deserialized |
argc | The size of the argv array. |
argv | An array of optional arguments. |
NULL
on failure. Implemented in mi::neuraylib::User_class_factory<T>.