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_implement & | operator= (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 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... | |
| Protected Member Functions | |
| Atom32 & | refcount () const | 
| Get the current refcount.  More... | |
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.
| I | The interface class that this class implements. | 
 #include <mi/base/interface_implement.h>