Iray SDK API nvidia_logo_transpbg.gif Up
mi::neuraylib::User_class_factory<T> Class Template Reference

This mixin class provides a default implementation of the IUser_class_factory interface. More...

#include <iuser_class_factory.h>

Inheritance diagram for mi::neuraylib::User_class_factory<T>:

Public Member Functions

base::IInterfacecreate (ITransaction *transaction, Uint32 argc, const base::IInterface *argv[])
 Creates an instance of the class for which the factory was registered. More...
 
- Public Member Functions inherited from mi::base::Interface_implement< neuraylib::IUser_class_factory >
 Interface_implement (Uint32 initial=1)
 Constructor. More...
 
 Interface_implement (const Interface_implement< neuraylib::IUser_class_factory > &other)
 Copy constructor. More...
 
 Interface_implement (Interface_implement &&other)
 Move constructor. More...
 
Interface_implement< neuraylib::IUser_class_factory > & operator= (const Interface_implement< neuraylib::IUser_class_factory > &other)
 Assignment operator. More...
 
Interface_implementoperator= (Interface_implement &&other)
 Move assignment. More...
 
virtual Uint32 retain () const
 Increments the reference count. More...
 
virtual Uint32 release () const
 Decrements the reference count. More...
 
virtual const IInterfaceget_interface (const Uuid &interface_id) const
 Acquires a const interface. More...
 
virtual IInterfaceget_interface (const Uuid &interface_id)
 Acquires a mutable interface. More...
 
Uuid get_iid () const
 Returns the interface ID of the most derived interface. More...
 
virtual base::IInterfacecreate (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 IInterfaceget_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 IInterfaceget_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...
 
- Protected Member Functions inherited from mi::base::Interface_implement< neuraylib::IUser_class_factory >
Atom32refcount () const
 Get the current refcount. More...
 

Detailed Description

template<class T>
class mi::neuraylib::User_class_factory<T>

This mixin class provides a default implementation of the IUser_class_factory interface.

This default implementation of mi::neuraylib::IUser_class_factory simply calls the default constructor of T without arguments.

The default implementation is used implicitly by some variants of the class registration, see mi::neuraylib::IExtension_api::register_class(const char*).

Member Function Documentation

 create()

template<class T>
base::IInterface * mi::neuraylib::User_class_factory<T>::create ( ITransaction transaction,
Uint32  argc,
const base::IInterface argv[] 
)
inlinevirtual

Creates an instance of the class for which the factory was registered.

This default implementation simply calls the default constructor of T without arguments. It does not accept any parameters, i.e., it requires argc = 0.

Parameters
transactionThe transaction (ignored).
argcThe size of the argv array (must be 0).
argvAn array of optional arguments (ignored).
Returns
An instance of the class, or NULL on failure.

Implements mi::neuraylib::IUser_class_factory.