7#ifndef MI_BASE_INTERFACE_DECLARE_H
8#define MI_BASE_INTERFACE_DECLARE_H
41 ,
class I = IInterface>
46 typedef Interface_declare<id1,id2,id3,id4,id5,id6,id7,id8,id9,id10,id11,I> Self;
49 typedef Uuid_t<id1,id2,id3,id4,id5,id6,id7,id8,id9,id10,id11> IID;
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 int Uint32
32-bit unsigned integer.
Definition: types.h:49
unsigned char Uint8
8-bit unsigned integer.
Definition: types.h:47
unsigned short Uint16
16-bit unsigned integer.
Definition: types.h:48
The basic extensible interface.
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH.
Definition: neuraylib.h:179
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).