|
ACF $AcfVersion:0$
|
Base template for polymorphic interface pointers. More...
#include <TInterfacePtr.h>
Public Types | |
| typedef PolymorphicPointerImpl | RootObjectPtr |
| typedef std::function< InterfaceType *()> | ExtractInterfaceFunc |
Public Member Functions | |
| bool | IsValid () const noexcept |
| template<typename Interface = InterfaceType> | |
| Interface * | GetPtr () noexcept |
| template<typename Interface = InterfaceType> | |
| const Interface * | GetPtr () const noexcept |
| const InterfaceType * | operator-> () const noexcept |
| InterfaceType * | operator-> () noexcept |
| const InterfaceType & | operator* () const noexcept |
| InterfaceType & | operator* () noexcept |
| void | Reset () noexcept |
| void | SetPtr (InterfaceType *interfacePtr) |
| void | SetPtr (istd::IPolymorphic *rootPtr, const ExtractInterfaceFunc &extractInterface) |
| void | SetPtr (istd::IPolymorphic *rootPtr, InterfaceType *interfacePtr) noexcept |
| RootObjectPtr & | GetBasePtr () noexcept |
| const RootObjectPtr & | GetBasePtr () const noexcept |
| InterfaceType * | get () noexcept |
| const InterfaceType * | get () const noexcept |
| operator bool () const noexcept | |
| bool | operator== (std::nullptr_t) const noexcept |
| bool | operator!= (std::nullptr_t) const noexcept |
| TInterfacePtr & | operator= (std::nullptr_t) noexcept |
Protected Member Functions | |
| TInterfacePtr (const TInterfacePtr &)=delete | |
| TInterfacePtr & | operator= (const TInterfacePtr &)=delete |
| TInterfacePtr () noexcept | |
| TInterfacePtr (InterfaceType *interfacePtr) noexcept | |
| TInterfacePtr (std::nullptr_t) noexcept | |
| TInterfacePtr (istd::IPolymorphic *rootPtr, const ExtractInterfaceFunc &extractInterface) noexcept | |
| TInterfacePtr (istd::IPolymorphic *rootPtr, InterfaceType *interfacePtr) noexcept | |
| TInterfacePtr (TInterfacePtr &&ptr) noexcept | |
| TInterfacePtr & | operator= (TInterfacePtr &&ptr) noexcept |
Protected Attributes | |
| RootObjectPtr | m_rootPtr |
| InterfaceType * | m_interfacePtr = nullptr |
Base template for polymorphic interface pointers.
Specialized polymorphic pointer that manages the allocated root object (m_rootPtr) and simultaneously provides a pointer to the actual interface implementation (m_interfacePtr). The interface instance is "derived" from the root object using the provided extractor (ExtractInterfaceFunc) or an alternative extraction mechanism. Ownership and lifetime are tied to m_rootPtr; m_interfacePtr is a non-owning view into the interface and may point to a different (sub)object than m_rootPtr.
| InterfaceType | The interface type to expose. |
| PolymorphicPointerImpl | The underlying smart pointer type (std::unique_ptr or std::shared_ptr). |
Definition at line 39 of file TInterfacePtr.h.
| typedef std::function<InterfaceType* ()> istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::ExtractInterfaceFunc |
Definition at line 43 of file TInterfacePtr.h.
| typedef PolymorphicPointerImpl istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::RootObjectPtr |
Definition at line 42 of file TInterfacePtr.h.
|
protecteddelete |
|
inlineprotectednoexcept |
Definition at line 186 of file TInterfacePtr.h.
|
inlineprotectednoexcept |
Definition at line 191 of file TInterfacePtr.h.
References istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::m_rootPtr.
|
inlineprotectednoexcept |
Definition at line 197 of file TInterfacePtr.h.
|
inlineprotectednoexcept |
Definition at line 203 of file TInterfacePtr.h.
References istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::SetPtr().
|
inlineprotectednoexcept |
Definition at line 208 of file TInterfacePtr.h.
References istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::SetPtr().
|
inlineprotectednoexcept |
Definition at line 214 of file TInterfacePtr.h.
|
inlinenoexcept |
Definition at line 155 of file TInterfacePtr.h.
References istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::GetPtr().
|
inlinenoexcept |
Definition at line 147 of file TInterfacePtr.h.
References istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::GetPtr().
Referenced by istd::TUniqueInterfacePtr< InterfaceType, RootIntefaceType >::PopInterfacePtr().
|
inlinenoexcept |
Definition at line 138 of file TInterfacePtr.h.
References istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::m_rootPtr.
|
inlinenoexcept |
Definition at line 133 of file TInterfacePtr.h.
References istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::m_rootPtr.
Referenced by istd::TSharedInterfacePtr< InterfaceType, RootIntefaceType >::operator=().
|
inlinenoexcept |
Definition at line 62 of file TInterfacePtr.h.
References istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::m_interfacePtr.
|
inlinenoexcept |
Definition at line 51 of file TInterfacePtr.h.
References istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::m_interfacePtr.
Referenced by istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::get(), istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::get(), istd::TOptInterfacePtr< InterfaceType >::GetPtr(), istd::TOptInterfacePtr< InterfaceType >::GetPtr(), and idoc::TMultiPageDocumentWrap< Base >::SerializePage().
|
inlinenoexcept |
Definition at line 45 of file TInterfacePtr.h.
References istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::m_interfacePtr.
Referenced by icomp::TComponentCloneWrap< BaseClass >::CloneMe(), istd::TComposedFactory< InterfaceType >::CreateInstance(), istd::TOptInterfacePtr< InterfaceType >::GetPtr(), istd::TOptInterfacePtr< InterfaceType >::GetPtr(), istd::TOptInterfacePtr< InterfaceType >::IsManaged(), TSharedCompPtr< InterfaceType >::IsValid(), istd::TOptInterfacePtr< InterfaceType >::IsValid(), istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::operator bool(), istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::operator!=(), TSharedCompPtr< InterfaceType >::operator*(), TSharedCompPtr< InterfaceType >::operator*(), TSharedCompPtr< InterfaceType >::operator->(), TSharedCompPtr< InterfaceType >::operator->(), istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::operator==(), istd::TOptInterfacePtr< InterfaceType >::SetCastedPtr(), istd::TOptInterfacePtr< InterfaceType >::TakeOver(), and istd::TOptInterfacePtr< InterfaceType >::TakeOver().
|
inlineexplicitnoexcept |
Definition at line 160 of file TInterfacePtr.h.
References istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::IsValid().
|
inlinenoexcept |
Definition at line 170 of file TInterfacePtr.h.
References istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::IsValid().
|
inlinenoexcept |
Definition at line 86 of file TInterfacePtr.h.
References istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::m_interfacePtr.
|
inlinenoexcept |
Definition at line 93 of file TInterfacePtr.h.
References istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::m_interfacePtr.
|
inlinenoexcept |
Definition at line 72 of file TInterfacePtr.h.
References istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::m_interfacePtr.
|
inlinenoexcept |
Definition at line 79 of file TInterfacePtr.h.
References istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::m_interfacePtr.
|
protecteddelete |
|
inlinenoexcept |
Definition at line 175 of file TInterfacePtr.h.
References istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::Reset().
|
inlineprotectednoexcept |
Definition at line 221 of file TInterfacePtr.h.
References istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::m_interfacePtr, and istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::m_rootPtr.
|
inlinenoexcept |
Definition at line 165 of file TInterfacePtr.h.
References istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::IsValid().
|
inlinenoexcept |
Definition at line 100 of file TInterfacePtr.h.
References istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::m_interfacePtr, and istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::m_rootPtr.
Referenced by istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::operator=().
|
inline |
Definition at line 111 of file TInterfacePtr.h.
References istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::m_interfacePtr, and istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::m_rootPtr.
Referenced by icomp::TComponentCloneWrap< BaseClass >::CloneMe(), istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::TInterfacePtr(), istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::TInterfacePtr(), and TSharedCompPtr< InterfaceType >::TSharedCompPtr().
|
inline |
Definition at line 119 of file TInterfacePtr.h.
References istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::m_interfacePtr, and istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::m_rootPtr.
|
inlinenoexcept |
Definition at line 126 of file TInterfacePtr.h.
References istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::m_interfacePtr, and istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::m_rootPtr.
|
protected |
Definition at line 234 of file TInterfacePtr.h.
Referenced by istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::GetPtr(), istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::GetPtr(), istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::IsValid(), istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::operator*(), istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::operator*(), istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::operator->(), istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::operator->(), istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::operator=(), istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::Reset(), istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::SetPtr(), istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::SetPtr(), and istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::SetPtr().
|
protected |
Definition at line 233 of file TInterfacePtr.h.
Referenced by istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::GetBasePtr(), istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::GetBasePtr(), istd::TSharedInterfacePtr< InterfaceType, RootIntefaceType >::operator=(), istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::operator=(), istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::Reset(), istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::SetPtr(), istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::SetPtr(), istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::SetPtr(), and istd::TInterfacePtr< InterfaceType, PolymorphicPointerImpl >::TInterfacePtr().