Mixin class template for deriving new interface declarations. More...
#include <interface_declare.h>

| Public Types | |
| typedef Interface_declare< id1, ... > | Self | 
| Own type.  More... | |
| typedef Uuid_t< id1, ... > | IID | 
| Declares the interface ID (IID) of this interface.  More... | |
| Public Member Functions | |
| 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... | |
| Static Public Member Functions | |
| static bool | compare_iid (const Uuid &iid) | 
| Compares the interface ID iidagainst the interface ID of this interface and of its ancestors.  More... | |
Mixin class template for deriving new interface declarations.
mi::base::Interface_declare is a mixin class template that allows you to derive new interface classes easily. It provides you with implementations for the interface ID handling and support for the mi::base::IInterface::get_interface method used by the corresponding mixin class template mi::base::Interface_implement.
It derives from the interface I, which is by default mi::base::IInterface. Each interface needs an interface ID (represented as a universally unique identifier (UUID)), which is defined here as 11 template parameter constants.
 #include <mi/base/interface_declare.h>