xapian-core  2.0.0
Public Member Functions | Private Types | Private Attributes | Friends | List of all members
Xapian::Internal::intrusive_ptr< T > Class Template Reference

A smart pointer that uses intrusive reference counting. More...

#include <intrusive_ptr.h>

+ Inheritance diagram for Xapian::Internal::intrusive_ptr< T >:

Public Member Functions

 intrusive_ptr ()
 
 intrusive_ptr (T *p)
 
template<class U >
 intrusive_ptr (intrusive_ptr< U > const &rhs)
 
 intrusive_ptr (intrusive_ptr const &rhs)
 
 ~intrusive_ptr ()
 
 intrusive_ptr (intrusive_ptr &&rhs)
 
intrusive_ptroperator= (intrusive_ptr &&rhs)
 
template<class U >
 intrusive_ptr (intrusive_ptr< U > &&rhs)
 
template<class U >
intrusive_ptroperator= (intrusive_ptr< U > &&rhs)
 
intrusive_ptroperator= (intrusive_ptr const &rhs)
 
intrusive_ptroperator= (T *rhs)
 
T * get () const
 
T & operator* () const
 
T * operator-> () const
 
void swap (intrusive_ptr &rhs)
 
 operator bool () const
 

Private Types

typedef intrusive_ptr this_type
 

Private Attributes

T * px
 

Friends

template<class U >
class intrusive_ptr
 

Detailed Description

template<class T>
class Xapian::Internal::intrusive_ptr< T >

A smart pointer that uses intrusive reference counting.

Definition at line 82 of file intrusive_ptr.h.

Member Typedef Documentation

◆ this_type

template<class T >
typedef intrusive_ptr Xapian::Internal::intrusive_ptr< T >::this_type
private

Definition at line 86 of file intrusive_ptr.h.

Constructor & Destructor Documentation

◆ intrusive_ptr() [1/6]

template<class T >
Xapian::Internal::intrusive_ptr< T >::intrusive_ptr ( )
inline

Definition at line 90 of file intrusive_ptr.h.

◆ intrusive_ptr() [2/6]

template<class T >
Xapian::Internal::intrusive_ptr< T >::intrusive_ptr ( T *  p)
inline

Definition at line 94 of file intrusive_ptr.h.

References Xapian::Internal::intrusive_ptr< T >::px.

◆ intrusive_ptr() [3/6]

template<class T >
template<class U >
Xapian::Internal::intrusive_ptr< T >::intrusive_ptr ( intrusive_ptr< U > const &  rhs)
inline

Definition at line 100 of file intrusive_ptr.h.

References Xapian::Internal::intrusive_ptr< T >::px.

◆ intrusive_ptr() [4/6]

template<class T >
Xapian::Internal::intrusive_ptr< T >::intrusive_ptr ( intrusive_ptr< T > const &  rhs)
inline

Definition at line 106 of file intrusive_ptr.h.

References Xapian::Internal::intrusive_ptr< T >::px.

◆ ~intrusive_ptr()

template<class T >
Xapian::Internal::intrusive_ptr< T >::~intrusive_ptr ( )
inline

Definition at line 111 of file intrusive_ptr.h.

References Xapian::Internal::intrusive_ptr< T >::px.

◆ intrusive_ptr() [5/6]

template<class T >
Xapian::Internal::intrusive_ptr< T >::intrusive_ptr ( intrusive_ptr< T > &&  rhs)
inline

Definition at line 116 of file intrusive_ptr.h.

◆ intrusive_ptr() [6/6]

template<class T >
template<class U >
Xapian::Internal::intrusive_ptr< T >::intrusive_ptr ( intrusive_ptr< U > &&  rhs)
inline

Definition at line 130 of file intrusive_ptr.h.

Member Function Documentation

◆ get()

template<class T >
T* Xapian::Internal::intrusive_ptr< T >::get ( ) const
inline

◆ operator bool()

template<class T >
Xapian::Internal::intrusive_ptr< T >::operator bool ( ) const
inlineexplicit

Definition at line 176 of file intrusive_ptr.h.

References Xapian::Internal::intrusive_ptr< T >::px.

◆ operator*()

template<class T >
T& Xapian::Internal::intrusive_ptr< T >::operator* ( ) const
inline

Definition at line 159 of file intrusive_ptr.h.

References Xapian::Internal::intrusive_ptr< T >::px.

◆ operator->()

template<class T >
T* Xapian::Internal::intrusive_ptr< T >::operator-> ( ) const
inline

Definition at line 164 of file intrusive_ptr.h.

References Xapian::Internal::intrusive_ptr< T >::px.

◆ operator=() [1/4]

template<class T >
intrusive_ptr& Xapian::Internal::intrusive_ptr< T >::operator= ( intrusive_ptr< T > &&  rhs)
inline

Definition at line 121 of file intrusive_ptr.h.

References Xapian::Internal::intrusive_ptr< T >::swap().

◆ operator=() [2/4]

template<class T >
intrusive_ptr& Xapian::Internal::intrusive_ptr< T >::operator= ( intrusive_ptr< T > const &  rhs)
inline

Definition at line 142 of file intrusive_ptr.h.

References Xapian::Internal::intrusive_ptr< T >::swap().

◆ operator=() [3/4]

template<class T >
template<class U >
intrusive_ptr& Xapian::Internal::intrusive_ptr< T >::operator= ( intrusive_ptr< U > &&  rhs)
inline

Definition at line 136 of file intrusive_ptr.h.

References Xapian::Internal::intrusive_ptr< T >::swap().

◆ operator=() [4/4]

template<class T >
intrusive_ptr& Xapian::Internal::intrusive_ptr< T >::operator= ( T *  rhs)
inline

Definition at line 148 of file intrusive_ptr.h.

References Xapian::Internal::intrusive_ptr< T >::swap().

◆ swap()

template<class T >
void Xapian::Internal::intrusive_ptr< T >::swap ( intrusive_ptr< T > &  rhs)
inline

Friends And Related Function Documentation

◆ intrusive_ptr

template<class T >
template<class U >
friend class intrusive_ptr
friend

Definition at line 127 of file intrusive_ptr.h.

Member Data Documentation

◆ px

template<class T >
T* Xapian::Internal::intrusive_ptr< T >::px
private

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