Used to implement IObject::GetInterface()
methods with given interfaces to expose.
More...
#include <adtf_iid.h>
Public Types | |
typedef BASE_OBJECT | base_type |
base object type | |
Protected Member Functions | |
virtual | ~extend_object () |
Protected destructor --> Only the final implementation can be destroyed! | |
virtual tResult | GetInterface (const char *i_strIID, void *&o_pInterface) |
Default implementation of IObject::GetInterface() | |
virtual tResult | GetInterface (const char *i_strIID, const void *&o_pInterface) const |
Default implementation of IObject::GetInterface() provided for const correctness. | |
virtual void | Destroy () const |
Default implementation to destroy an object of this type. | |
Used to implement IObject::GetInterface()
methods with given interfaces to expose.
BASE_OBJECT | The implemented object to extend. |
EXTEND_INTERFACE | The interface to extend the BASE_OBJECT with. |
If | multiple inheritance leads to ambiguous calls, use a hierarchy here. Otherwise only EXTEND_INTERFACE is allowed. |
Child | Child type of this extend_object and is only needed if UCOM_RESOLVE() is given in child class Child . |
This template class is intended as subclass of a concrete implementation of IObject
. When inheriting from this class, two template parameters of type inherit_from
and expose_interfaces
, both being variadic templates themselves, must be given. With struct inherit_from
those types are given which default_object
itself uses as its parents in form of multiple inheritance. As default_object
itself must be inherited by the concrete implementation of the given subclassed interfaces, it marks some kind of intermediate layer only used to implement IObject::GetInterface()
methods. With struct expose_interfaces
the interfaces to expose are given.
Definition at line 732 of file adtf_iid.h.
typedef BASE_OBJECT base_type |
base object type
Definition at line 735 of file adtf_iid.h.
|
inlineprotectedvirtual |
Protected destructor --> Only the final implementation can be destroyed!
Definition at line 739 of file adtf_iid.h.
|
inlineprotectedvirtual |
Default implementation to destroy an object of this type.
Definition at line 802 of file adtf_iid.h.
|
inlineprotectedvirtual |
Default implementation of IObject::GetInterface()
provided for const correctness.
Using the interface types given with expose_interfaces
, meta struct template interface_expose
is used to evaluate whether the interface identified with i_strIID
is exposed by this
.
[in] | i_strIID | Identifier of the interface being requested. |
[out] | o_pInterface | Address of pointer variable that receives the interface pointer requested in idInterface. Upon successful return, *o_pInterface contains the requested interface pointer to the object. If the object does not expose the interface specified in i_strIID , i_pInterface is set to NULL. |
ERR_NOERROR | The interface identified by i_strIID was implemented and exposed by the implementation of *this . o_pInterface points to the queried interface. |
ERR_NO_INTERFACE | The requested interface is not exposed. o_pInterface==NULL |
Definition at line 784 of file adtf_iid.h.
|
inlineprotectedvirtual |
Default implementation of IObject::GetInterface()
Using the interface types given with expose_interfaces
, meta struct template interface_expose
is used to evaluate whether the interface identified with i_strIID
is exposed by this
.
[in] | i_strIID | Identifier of the interface being requested. |
[out] | o_pInterface | Address of pointer variable that receives the interface pointer requested in idInterface. Upon successful return, *o_pInterface contains the requested interface pointer to the object. If the object does not expose the interface specified in i_strIID , i_pInterface is set to NULL. |
ERR_NOERROR | The interface identified by i_strIID was implemented and exposed by the implementation of *this . o_pInterface points to the queried interface. |
ERR_NO_INTERFACE | The requested interface is not exposed. o_pInterface==NULL |
Definition at line 756 of file adtf_iid.h.