NVIDIA Iray API Home  Up
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
mi::neuraylib::User_class_factory< T > Class Template Reference

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

Inheritance diagram for mi::neuraylib::User_class_factory< T >:
Inheritance graph
[legend]

Public Member Functions

base::IInterface create (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
< neuraylib::IUser_class_factory > & 
operator= (const Interface_implement< neuraylib::IUser_class_factory > &other)
  Assignment operator. More...
 
virtual Uint32  retain () const
  Increments the reference count. More...
 
virtual Uint32  release () const
  Decrements the reference count. More...
 
virtual const IInterface get_interface (const Uuid &interface_id) const
  Acquires a const interface. More...
 
virtual IInterface get_interface (const Uuid &interface_id)
  Acquires a mutable interface. More...
 
Uuid  get_iid () const
  Returns the interface ID of the most derived interface. More...
 

Additional Inherited Members

- Public Types inherited from mi::base::Interface_declare< 0x37355ece, 0x2ed7, 0x4158, 0x88, 0x35, 0xb8, 0x60, 0xaf, 0x75, 0x6a, 0x64 >
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...
 
- Static Public Member Functions inherited from mi::base::Interface_declare< 0x37355ece, 0x2ed7, 0x4158, 0x88, 0x35, 0xb8, 0x60, 0xaf, 0x75, 0x6a, 0x64 >
static bool  compare_iid (const Uuid &iid)
  Compares the interface ID iid against the interface ID of this interface and of its ancestors. 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

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
transaction The transaction (ignored).
argc The size of the argv array (must be 0).
argv An array of optional arguments (ignored).
Returns
An instance of the class, or NULL on failure.

Implements mi::neuraylib::IUser_class_factory.