Iray SDK API nvidia_logo_transpbg.gif Up
mi::base::Interface_implement<I> Class Template Reference

Mixin class template for deriving interface implementations. More...

#include <interface_implement.h>

Inherits I.

Public Member Functions

 Interface_implement (Uint32 initial=1)
 Constructor. More...
 
 Interface_implement (const Interface_implement<I> &other)
 Copy constructor. More...
 
Interface_implement<I> & operator= (const Interface_implement<I> &other)
 Assignment operator. More...
 
 Interface_implement (Interface_implement &&other)
 Move constructor. 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...
 

Protected Member Functions

Atom32refcount () const
 Get the current refcount. More...
 

Detailed Description

template<class I>
class mi::base::Interface_implement<I>

Mixin class template for deriving interface implementations.

mi::base::Interface_implement is a mixin class template that allows you to derive interface class implementations easily. It provides you with the full implementation of reference counting and the mi::base::IInterface::get_interface(const Uuid&) method. It requires that you used interfaces derived from the corresponding mixin class template mi::base::Interface_declare.

mi::base::Interface_implement is derived from the interface I.

Template Parameters
IThe interface class that this class implements.
Include File:
#include <mi/base/interface_implement.h>