LMMS
Loading...
Searching...
No Matches
Steinberg::FUnknownPtr< I > Class Template Reference

#include <funknown.h>

Inheritance diagram for Steinberg::FUnknownPtr< I >:
Steinberg::IPtr< I >

Public Member Functions

 FUnknownPtr (FUnknown *unknown)
 FUnknownPtr (const FUnknownPtr &p)
 FUnknownPtr ()
FUnknownPtroperator= (const FUnknownPtr &p)
I * operator= (FUnknown *unknown)
I * getInterface ()
Public Member Functions inherited from Steinberg::IPtr< I >
 IPtr (I *ptr, bool addRef=true)
 IPtr (const IPtr &)
template<class T>
 IPtr (const IPtr< T > &other)
 IPtr ()
 ~IPtr ()
I * operator= (I *ptr)
IPtroperator= (const IPtr &other)
template<class T>
IPtroperator= (const IPtr< T > &other)
 operator I* () const
I * operator-> () const
I * get () const
void reset (I *obj=nullptr)
I * take () SMTG_NOEXCEPT

Additional Inherited Members

Static Public Member Functions inherited from Steinberg::IPtr< I >
template<typename T>
static IPtr< T > adopt (T *obj) SMTG_NOEXCEPT
Protected Attributes inherited from Steinberg::IPtr< I >
I * ptr

Detailed Description

template<class I>
class Steinberg::FUnknownPtr< I >

FUnknownPtr - automatic interface conversion and smart pointer in one. This template class can be used for interface conversion like this:

IPtr<IPath> path = owned (FHostCreate (IPath, hostClasses));
FUnknownPtr<IPath2> path2 (path); // does a query interface for IPath2
if (path2)
...
FUnknownPtr(FUnknown *unknown)
Definition funknown.h:491
IPtr(I *ptr, bool addRef=true)
Definition smartpointer.h:126
IPtr< I > owned(I *p)
Definition smartpointer.h:241

Constructor & Destructor Documentation

◆ FUnknownPtr() [1/3]

template<class I>
Steinberg::FUnknownPtr< I >::FUnknownPtr ( FUnknown * unknown)
inline

◆ FUnknownPtr() [2/3]

template<class I>
Steinberg::FUnknownPtr< I >::FUnknownPtr ( const FUnknownPtr< I > & p)
inline

◆ FUnknownPtr() [3/3]

template<class I>
Steinberg::FUnknownPtr< I >::FUnknownPtr ( )
inline

Member Function Documentation

◆ getInterface()

template<class I>
I * Steinberg::FUnknownPtr< I >::getInterface ( )
inline

◆ operator=() [1/2]

template<class I>
FUnknownPtr & Steinberg::FUnknownPtr< I >::operator= ( const FUnknownPtr< I > & p)
inline

◆ operator=() [2/2]

template<class I>
I * Steinberg::FUnknownPtr< I >::operator= ( FUnknown * unknown)
inline

The documentation for this class was generated from the following file: