7#ifndef MI_BASE_IINTERFACE_H
8#define MI_BASE_IINTERFACE_H
112 typedef Uuid_t<0,0,0,0,0,0,0,0,0,0,0> IID;
119 return ( iid ==
IID());
171 return static_cast<const T*
>(
get_interface(
typename T::IID()));
220 static const IInterface* get_interface_static(
223 if( interface_id ==
IID()) {
240 if( interface_id ==
IID()) {
The basic extensible interface.
Definition: iinterface.h:103
Class template for a compile-time representation of universally unique identifiers (UUIDs or GUIDs).
Definition: uuid.h:122
virtual const IInterface * get_interface(const Uuid &interface_id) const =0
Acquires a const interface from another.
virtual Uuid get_iid() const =0
Returns the interface ID of the most derived interface.
Uuid_t<0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0> IID
Declares the interface ID (IID) of this interface.
Definition: iinterface.h:112
virtual Uint32 retain() const =0
Increments the reference count.
T * get_interface()
Acquires a mutable interface from another.
Definition: iinterface.h:204
const T * get_interface() const
Acquires a const interface from another.
Definition: iinterface.h:169
virtual IInterface * get_interface(const Uuid &interface_id)=0
Acquires a mutable interface from another.
virtual Uint32 release() const =0
Decrements the reference count.
static bool compare_iid(const Uuid &iid)
Compares the interface ID iid against the interface ID of this interface.
Definition: iinterface.h:117
unsigned int Uint32
32-bit unsigned integer.
Definition: types.h:49
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH.
Definition: base.h:34
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).