MDL SDK API nvidia_logo_transpbg.gif Up
mi::base::Interface_implement_2<I1, I2> Class Template Reference

Mixin class template for deriving interface implementations from two interfaces. More...

#include <interface_implement.h>

Inherits I1, and I2.

Public Member Functions

 Interface_implement_2 (Uint32 initial=1)
 Constructor. More...
 
 Interface_implement_2 (const Interface_implement_2<I1, I2> &other)
 Copy constructor. More...
 
Interface_implement_2<I1, I2> & operator= (const Interface_implement_2<I1, I2> &other)
 Assignment operator. 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...
 

Detailed Description

template<class I1, class I2>
class mi::base::Interface_implement_2<I1, I2>

Mixin class template for deriving interface implementations from two interfaces.

mi::base::Interface_implement_2 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 I1 and I2. In case of ambiguities, interface I1 is preferred.

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