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>