Abstract interface for user-defined classes. More...
#include <iuser_class.h>
Public Member Functions | |
virtual IUser_class * | copy () const =0 |
Creates a copy of the database element. More... | |
virtual const char * | get_class_name () const =0 |
Returns a human readable identifier for the class this database element belongs to. More... | |
virtual IArray * | get_references (ITransaction *transaction) const =0 |
Returns the list of elements referenced by this element. More... | |
Public Member Functions inherited from mi::neuraylib::ISerializable | |
virtual base::Uuid | get_class_id () const =0 |
Returns the class ID of the object. More... | |
virtual void | serialize (ISerializer *serializer) const =0 |
Serializes the object to the given serializer . More... | |
virtual void | deserialize (IDeserializer *deserializer)=0 |
Deserializes the object from the given deserializer . 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< 0xa8bbfac5, ... > | |
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::Interface_declare< 0x7a70f2fb, ... > | |
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< 0xa8bbfac5, ... > | |
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::Interface_declare< 0x7a70f2fb, ... > | |
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-defined classes.
All user-defined classes have to be derived from this interface. The mixing mi::neuraylib::User_class is helpful to implement this interface (or interfaces derived from it). User-defined classes have to be registered via mi::neuraylib::IExtension_api::register_class().
|
pure virtual |
Creates a copy of the database element.
Duplicating a database element is used by the database when it needs to create a new version of the given element, e.g., when someone edits an existing element. This member function must create and return a full copy of the element.
|
pure virtual |
Returns a human readable identifier for the class this database element belongs to.
This name is not required for proper operation, but can be useful for debugging. For example, the name is used to display the class name in the tag table of the HTTP administration console.
|
pure virtual |
Returns the list of elements referenced by this element.
The database ensures that elements will not be removed from the database as long as they are referenced by other elements, even if they have been scheduled for removal by mi::neuraylib::IDice_transaction::remove().
transaction | A transaction that can be used to create the return value or temporary values. |
NULL
if the element does not refer other elements.