NCBI C++ ToolKit
Public Types | Public Member Functions | Private Types | List of all members
CIRef< Interface, Locker > Class Template Reference

Search Toolkit Book for CIRef

#include <corelib/ncbiobj.hpp>

+ Inheritance diagram for CIRef< Interface, Locker >:
+ Collaboration diagram for CIRef< Interface, Locker >:

Public Types

typedef TParent::TObjectType TObjectType
 
typedef TParent::locker_type locker_type
 
typedef CIRef< Interface, Locker > TThisType
 
template<class T >
using enable_if_derived = typename std::enable_if< std::is_convertible< T *, TObjectType * >::value >
 Helper template to template enable methods only for derived types. More...
 
- Public Types inherited from CRef< Interface, CInterfaceObjectLocker< Interface > >
typedef Interface element_type
 Define alias element_type. More...
 
typedef element_type TObjectType
 Define alias TObjectType. More...
 
typedef CInterfaceObjectLocker< Interface > locker_type
 Define alias for locking type. More...
 
typedef CRef< Interface, CInterfaceObjectLocker< Interface > > TThisType
 Alias for this template type. More...
 
using enable_if_derived = typename std::enable_if< std::is_convertible< T *, TObjectType * >::value >
 Helper template to template enable methods only for derived types. More...
 

Public Member Functions

 CIRef (void) THROWS_NONE
 Constructor for null pointer. More...
 
 CIRef (ENull) THROWS_NONE
 Constructor for ENull pointer. More...
 
 CIRef (TObjectType *ptr)
 Constructor for explicit type conversion from pointer to object. More...
 
 CIRef (const TThisType &ref)
 Constructor from existing ref. More...
 
template<class TDerived , class = typename enable_if_derived<TDerived>::type>
 CIRef (const CIRef< TDerived > &ref)
 Constructor from existing ref of derived type. More...
 
 CIRef (TThisType &&ref)
 Move constructor from existing ref. More...
 
template<class TDerived , class = typename enable_if_derived<TDerived>::type>
 CIRef (CIRef< TDerived > &&ref)
 Move constructor from existing ref of derived type. More...
 
 CIRef (TObjectType *ptr, const locker_type &locker_value)
 Constructor for explicit type conversion from pointer to object. More...
 
TThisTypeoperator= (const TThisType &ref)
 Assignment operator for references. More...
 
template<class TDerived , class = typename enable_if_derived<TDerived>::type>
TThisTypeoperator= (const CIRef< TDerived > &ref)
 Assignment operator for references of derived types. More...
 
TThisTypeoperator= (TThisType &&ref)
 Move assignment operator for references. More...
 
template<class TDerived , class = typename enable_if_derived<TDerived>::type>
TThisTypeoperator= (CIRef< TDerived > &&ref)
 Move assignment operator for references of derived types. More...
 
TThisTypeoperator= (TObjectType *ptr)
 Assignment operator for references with right hand side set to a pointer. More...
 
TThisTypeoperator= (ENull null)
 Assignment operator with right hand side set to ENull. More...
 
void Swap (TThisType &ref)
 Swaps the pointer with another reference. More...
 
- Public Member Functions inherited from CRef< Interface, CInterfaceObjectLocker< Interface > >
 CRef (void) THROWS_NONE
 Constructor for null pointer. More...
 
 CRef (ENull) THROWS_NONE
 Constructor for ENull pointer. More...
 
 CRef (TObjectType *ptr)
 Constructor for explicit type conversion from pointer to object. More...
 
 CRef (TObjectType *ptr, const locker_type &locker_value)
 Constructor for explicit type conversion from pointer to object. More...
 
 CRef (const TThisType &ref)
 Copy constructor from an existing CRef object. More...
 
 CRef (const CRef< TDerived, CInterfaceObjectLocker< Interface > > &ref)
 Copy constructor from an existing CRef object of derived type. More...
 
 CRef (TThisType &&ref)
 Move constructor from an existing CRef object. More...
 
 CRef (CRef< TDerived, CInterfaceObjectLocker< Interface > > &&ref)
 Move constructor from an existing CRef object of derived type. More...
 
 ~CRef (void)
 Destructor. More...
 
const locker_typeGetLocker (void) const
 Get reference to locker object. More...
 
bool operator! (void) const THROWS_NONE
 Check if CRef is empty – not pointing to any object, which means having a null value. More...
 
bool Empty (void) const THROWS_NONE
 Check if CRef is empty – not pointing to any object, which means having a null value. More...
 
bool NotEmpty (void) const THROWS_NONE
 Check if CRef is not empty – pointing to an object and has a non-null value. More...
 
bool IsNull (void) const THROWS_NONE
 Check if pointer is null – same effect as Empty(). More...
 
bool NotNull (void) const THROWS_NONE
 Check if pointer is not null – same effect as NotEmpty(). More...
 
void Swap (TThisType &ref)
 Swaps the pointer with another reference. More...
 
void Reset (void)
 Reset reference object. More...
 
void Reset (TObjectType *newPtr)
 Reset reference object to new pointer. More...
 
TObjectTypeReleaseOrNull (void)
 Release a reference to the object and return a pointer to the object. More...
 
TObjectTypeRelease (void)
 Release a reference to the object and return a pointer to the object. More...
 
void AtomicResetFrom (const TThisType &ref)
 Reset reference object to new pointer. More...
 
void AtomicReleaseTo (TThisType &ref)
 Release referenced object to another CRef<> object. More...
 
TThisTypeoperator= (const TThisType &ref)
 Assignment operator for references. More...
 
TThisTypeoperator= (const CRef< TDerived, CInterfaceObjectLocker< Interface > > &ref)
 Assignment operator for references of derived types. More...
 
TThisTypeoperator= (TThisType &&ref)
 Move assignment operator for references. More...
 
TThisTypeoperator= (CRef< TDerived, CInterfaceObjectLocker< Interface > > &&ref)
 Move assignment operator for references of derived types. More...
 
TThisTypeoperator= (TObjectType *ptr)
 Assignment operator for references with right hand side set to a pointer. More...
 
TThisTypeoperator= (ENull)
 Assignment operator with right hand side set to ENull. More...
 
TObjectTypeGetNonNullPointer (void)
 Get pointer value and throw a null pointer exception if pointer is null. More...
 
const TObjectTypeGetNonNullPointer (void) const
 Get pointer value and throw a null pointer exception if pointer is null – constant version. More...
 
TObjectTypeGetPointerOrNull (void) THROWS_NONE
 Get pointer value. More...
 
const TObjectTypeGetPointerOrNull (void) const THROWS_NONE
 Get pointer value – constant version. More...
 
TObjectTypeGetPointer (void) THROWS_NONE
 Get pointer,. More...
 
const TObjectTypeGetPointer (void) const THROWS_NONE
 Get pointer – constant version,. More...
 
TObjectTypeGetObject (void)
 Get object. More...
 
const TObjectTypeGetObject (void) const
 Get object – constant version. More...
 
TObjectTypeoperator* (void)
 Dereference operator returning object. More...
 
const TObjectTypeoperator* (void) const
 Dereference operator returning object – constant version. More...
 
TObjectTypeoperator-> (void)
 Reference operator. More...
 
const TObjectTypeoperator-> (void) const
 Reference operator – constant version. More...
 
 operator TObjectType * (void)
 Dereference operator returning pointer. More...
 
 operator const TObjectType * (void) const
 Dereference operator returning pointer – constant version. More...
 
TObjectTypeGetNonNullNCPointer (void) const
 Get pointer value and throw a null pointer exception if pointer is null. More...
 
TObjectTypeGetNCPointerOrNull (void) const THROWS_NONE
 Get pointer value. More...
 
TObjectTypeGetNCPointer (void) const THROWS_NONE
 Get pointer,. More...
 
TObjectTypeGetNCObject (void) const
 Get object. More...
 

Private Types

typedef CRef< Interface, Locker > TParent
 

Additional Inherited Members

- Static Public Member Functions inherited from CRef< Interface, CInterfaceObjectLocker< Interface > >
static void ThrowNullPointerException (void)
 

Detailed Description

template<class Interface, class Locker = CInterfaceObjectLocker<Interface>>
class CIRef< Interface, Locker >

Definition at line 2032 of file ncbiobj.hpp.


The documentation for this class was generated from the following file:
Modified on Wed Sep 04 15:03:08 2024 by modify_doxy.py rev. 669887