7#ifndef MI_BASE_INTERFACE_DECLARE_H
8#define MI_BASE_INTERFACE_DECLARE_H
41 ,
class I = IInterface>
46 using Self =
Interface_declare<id1, id2, id3, id4, id5, id6, id7, id8, id9, id10, id11, I>;
49 using IID =
Uuid_t<id1, id2, id3, id4, id5, id6, id7, id8, id9, id10, id11>;
59 return I::compare_iid( iid);
71 const Uuid& interface_id)
73 if( interface_id ==
IID()) {
74 const Self* self =
static_cast<const Self *
>( iinterface);
78 return I::get_interface_static( iinterface, interface_id);
87 static IInterface* get_interface_static(
88 IInterface* iinterface,
89 const Uuid& interface_id)
91 if( interface_id ==
IID()) {
92 Self* self =
static_cast<Self*
>( iinterface);
96 return I::get_interface_static( iinterface, interface_id);
The basic extensible interface.
Definition: iinterface.h:103
Mixin class template for deriving new interface declarations.
Definition: interface_declare.h:43
Class template for a compile-time representation of universally unique identifiers (UUIDs or GUIDs).
Definition: uuid.h:122
Uuid_t< id1, ... > IID
Declares the interface ID (IID) of this interface.
Definition: interface_declare.h:49
Interface_declare< id1, ... > Self
Own type.
Definition: interface_declare.h:46
static bool compare_iid(const Uuid &iid)
Compares the interface ID iid against the interface ID of this interface and of its ancestors.
Definition: interface_declare.h:56
unsigned char Uint8
8-bit unsigned integer.
Definition: types.h:47
unsigned short Uint16
16-bit unsigned integer.
Definition: types.h:48
unsigned int Uint32
32-bit unsigned integer.
Definition: types.h:49
The basic extensible interface.
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH.
Definition: example_derivatives.dox:5
A 128 bit representation of a universally unique identifier (UUID or GUID).
Definition: uuid.h:26
A 128 bit representation of a universally unique identifier (UUID or GUID).