Raytrix Light Field SDK  4.0
Logo
Public Member Functions | Protected Member Functions | List of all members
Rx::LFR::CPimpl< TImpl, TEnumInterface > Class Template Reference

Detailed Description

template<class TImpl, class TEnumInterface>
class Rx::LFR::CPimpl< TImpl, TEnumInterface >

The PIMPL base class. Creates, holds and destroys an instance of the given generic type parameter.

Template Parameters
TImplGeneric type parameter.
TEnumInterfaceThe enum type of the interface ID.

Inherited by Rx::LFR::CParametersPimpl< TImpl, TEnum, TEnumInterface >.

Public Member Functions

 CPimpl (CPimpl< TImpl, TEnumInterface > &&xPimpl)
 Move constructor. More...
 
TImpl & GetImpl ()
 Gets the non constant implementation. More...
 
const TImpl & GetImpl () const
 Gets the constant implementation. More...
 
void * GetInterface (TEnumInterface eInterface)
 Gets the interface defined by the given interface ID. More...
 
const void * GetInterface (TEnumInterface eInterface) const
 Gets the interface defined by the given interface ID. More...
 
template<typename TInterface >
TInterface * GetInterface (TEnumInterface eInterface)
 Gets the interface defined by the given interface ID. More...
 
template<typename TInterface >
const TInterface * GetInterface (TEnumInterface eInterface) const
 Gets the interface defined by the given interface ID. More...
 
bool HasInterface (TEnumInterface eInterface)
 Queries if this object has the given interface. More...
 
CPimploperator= (CPimpl< TImpl, TEnumInterface > &&xPimpl)
 Move assignment operator. More...
 

Protected Member Functions

 CPimpl ()
 Protected constructor. Creates the implementation instance. More...
 
 CPimpl (TImpl *pxImpl, bool bFreeOnDelete)
 Protected constructor. Takes the ownership of the implementation instance. More...
 
 ~CPimpl ()
 Protected destructor. Deletes the implementation instance. More...
 

Constructor & Destructor Documentation

template<class TImpl, class TEnumInterface>
Rx::LFR::CPimpl< TImpl, TEnumInterface >::CPimpl ( )
inlineprotected

Protected constructor. Creates the implementation instance.

template<class TImpl, class TEnumInterface>
Rx::LFR::CPimpl< TImpl, TEnumInterface >::CPimpl ( TImpl *  pxImpl,
bool  bFreeOnDelete 
)
inlineprotected

Protected constructor. Takes the ownership of the implementation instance.

template<class TImpl, class TEnumInterface>
Rx::LFR::CPimpl< TImpl, TEnumInterface >::~CPimpl ( )
inlineprotected

Protected destructor. Deletes the implementation instance.

template<class TImpl, class TEnumInterface>
Rx::LFR::CPimpl< TImpl, TEnumInterface >::CPimpl ( CPimpl< TImpl, TEnumInterface > &&  xPimpl)
inline

Move constructor.

Parameters
xPimpl[in,out] The pimpl to move. Gets invalid after this call.

Member Function Documentation

template<class TImpl, class TEnumInterface>
TImpl& Rx::LFR::CPimpl< TImpl, TEnumInterface >::GetImpl ( )
inline

Gets the non constant implementation.

Returns
The implementation.
template<class TImpl, class TEnumInterface>
const TImpl& Rx::LFR::CPimpl< TImpl, TEnumInterface >::GetImpl ( ) const
inline

Gets the constant implementation.

Returns
The implementation.
template<class TImpl, class TEnumInterface>
void* Rx::LFR::CPimpl< TImpl, TEnumInterface >::GetInterface ( TEnumInterface  eInterface)

Gets the interface defined by the given interface ID.

Parameters
eInterfaceThe interface ID.
Returns
Null if it fails, else the interface.
template<class TImpl, class TEnumInterface>
const void* Rx::LFR::CPimpl< TImpl, TEnumInterface >::GetInterface ( TEnumInterface  eInterface) const

Gets the interface defined by the given interface ID.

Parameters
eInterfaceThe interface ID.
Returns
Null if it fails, else the interface.
template<class TImpl, class TEnumInterface>
template<typename TInterface >
TInterface* Rx::LFR::CPimpl< TImpl, TEnumInterface >::GetInterface ( TEnumInterface  eInterface)
inline

Gets the interface defined by the given interface ID.

Template Parameters
TInterfaceThe interface type.
Parameters
eInterfaceThe interface.
Returns
Null if it fails, else the interface.
template<class TImpl, class TEnumInterface>
template<typename TInterface >
const TInterface* Rx::LFR::CPimpl< TImpl, TEnumInterface >::GetInterface ( TEnumInterface  eInterface) const
inline

Gets the interface defined by the given interface ID.

Template Parameters
TInterfaceThe interface type.
Parameters
eInterfaceThe interface ID.
Returns
Null if it fails, else the interface.
template<class TImpl, class TEnumInterface>
bool Rx::LFR::CPimpl< TImpl, TEnumInterface >::HasInterface ( TEnumInterface  eInterface)
inline

Queries if this object has the given interface.

Parameters
eInterfaceThe interface to query.
Returns
True if this class has the given interface, false if not.
template<class TImpl, class TEnumInterface>
CPimpl& Rx::LFR::CPimpl< TImpl, TEnumInterface >::operator= ( CPimpl< TImpl, TEnumInterface > &&  xPimpl)
inline

Move assignment operator.

Parameters
xPimpl[in,out] The pimpl to move. Gets invalid after this call.
Returns
This instance.