ADTF
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
interface_expose< Interfaces >

Meta template struct used to expose all interfaces. More...

#include <adtf_iid.h>

Static Private Member Functions

template<typename Provider, typename VoidType>
static tResult Get (Provider *i_pObj, const char *i_strIID, VoidType *&o_pInterface)
 Get the interface with IID i_strIID exposed from i_pObj.
 

Detailed Description

template<typename ... Interfaces>
class adtf::ucom::ant::interface_expose< Interfaces >

Meta template struct used to expose all interfaces.

Template Parameters
...InterfacesParameter pack containing all interface types to evaluate.
See also
Section The "advanced" way (aka "interface_expose<>") in page The ucom_cast<> in depth explanation for further information.

Definition at line 471 of file adtf_iid.h.

Member Function Documentation

◆ Get()

template<typename ... Interfaces>
template<typename Provider, typename VoidType>
static tResult Get ( Provider * i_pObj,
const char * i_strIID,
VoidType *& o_pInterface )
inlinestaticprivate

Get the interface with IID i_strIID exposed from i_pObj.

Template Parameters
ProviderType exposing the ...Interfaces.
VoidTypeWhere the interface type identified by i_strIID gets statically casted to
Precondition
true == std::is_void<VoidType>
Parameters
[in]i_pObjPointer to object of type Provider exposing the requested interface.
[in]i_strIIDThe queried IID which identifies the interface type to retrieve.
[out]o_pInterfacePointer to reference of type (const) void the interface is cast to. nullptr if IID matches one of the exposed interfaces.
Returns
Standard error code.
Return values
ERR_NOERROREverything went fine (o_pInterface != nullptr)
ERR_NO_INTERFACEi_pObj doesn't expose the requested Interface (o_pInterface == nullptr)
See also
Section The "advanced" way (aka "interface_expose<>") in page The ucom_cast<> in depth explanation

Definition at line 594 of file adtf_iid.h.