This is Unofficial EPICS BASE Doxygen Site
boost::detail::sp_counted_base Class Referenceabstract

#include "sp_counted_base_gcc_ppc.hpp"

+ Inheritance diagram for boost::detail::sp_counted_base:

Public Member Functions

 sp_counted_base ()
 
virtual ~sp_counted_base ()
 
virtual void dispose ()=0
 
virtual void destroy ()
 
virtual void * get_deleter (sp_typeinfo const &ti)=0
 
virtual void * get_untyped_deleter ()=0
 
void add_ref_copy ()
 
bool add_ref_lock ()
 
void release ()
 
void weak_add_ref ()
 
void weak_release ()
 
long use_count () const
 
 sp_counted_base ()
 
virtual ~sp_counted_base ()
 
virtual void dispose ()=0
 
virtual void destroy ()
 
virtual void * get_deleter (sp_typeinfo const &ti)=0
 
virtual void * get_untyped_deleter ()=0
 
void add_ref_copy ()
 
bool add_ref_lock ()
 
void release ()
 
void weak_add_ref ()
 
void weak_release ()
 
long use_count () const
 

Detailed Description

Definition at line 105 of file sp_counted_base_gcc_ppc.hpp.

Constructor & Destructor Documentation

boost::detail::sp_counted_base::sp_counted_base ( )
inline

Definition at line 117 of file sp_counted_base_gcc_ppc.hpp.

117  : use_count_( 1 ), weak_count_( 1 )
118  {
119  }
virtual boost::detail::sp_counted_base::~sp_counted_base ( )
inlinevirtual

Definition at line 121 of file sp_counted_base_gcc_ppc.hpp.

122  {
123  }
boost::detail::sp_counted_base::sp_counted_base ( )
inline

Definition at line 109 of file sp_counted_base_gcc_x86.hpp.

109  : use_count_( 1 ), weak_count_( 1 )
110  {
111  }
virtual boost::detail::sp_counted_base::~sp_counted_base ( )
inlinevirtual

Definition at line 113 of file sp_counted_base_gcc_x86.hpp.

114  {
115  }

Member Function Documentation

void boost::detail::sp_counted_base::add_ref_copy ( )
inline

Definition at line 132 of file sp_counted_base_gcc_x86.hpp.

133  {
134  atomic_increment( &use_count_ );
135  }
void atomic_increment(int *pw)
void boost::detail::sp_counted_base::add_ref_copy ( )
inline

Definition at line 140 of file sp_counted_base_gcc_ppc.hpp.

141  {
142  atomic_increment( &use_count_ );
143  }
void atomic_increment(int *pw)
bool boost::detail::sp_counted_base::add_ref_lock ( )
inline

Definition at line 137 of file sp_counted_base_gcc_x86.hpp.

138  {
139  return atomic_conditional_increment( &use_count_ ) != 0;
140  }
int atomic_conditional_increment(int *pw)
bool boost::detail::sp_counted_base::add_ref_lock ( )
inline

Definition at line 145 of file sp_counted_base_gcc_ppc.hpp.

146  {
147  return atomic_conditional_increment( &use_count_ ) != 0;
148  }
int atomic_conditional_increment(int *pw)
virtual void boost::detail::sp_counted_base::destroy ( )
inlinevirtual

Reimplemented in boost::detail::sp_counted_impl_pda< P, D, A >.

Definition at line 124 of file sp_counted_base_gcc_x86.hpp.

125  {
126  delete this;
127  }
virtual void boost::detail::sp_counted_base::destroy ( )
inlinevirtual

Reimplemented in boost::detail::sp_counted_impl_pda< P, D, A >.

Definition at line 132 of file sp_counted_base_gcc_ppc.hpp.

133  {
134  delete this;
135  }
virtual void boost::detail::sp_counted_base::dispose ( )
pure virtual
virtual void boost::detail::sp_counted_base::dispose ( )
pure virtual
virtual void* boost::detail::sp_counted_base::get_deleter ( sp_typeinfo const &  ti)
pure virtual
virtual void* boost::detail::sp_counted_base::get_deleter ( sp_typeinfo const &  ti)
pure virtual
virtual void* boost::detail::sp_counted_base::get_untyped_deleter ( )
pure virtual
virtual void* boost::detail::sp_counted_base::get_untyped_deleter ( )
pure virtual
void boost::detail::sp_counted_base::release ( )
inline

Definition at line 142 of file sp_counted_base_gcc_x86.hpp.

143  {
144  if( atomic_exchange_and_add( &use_count_, -1 ) == 1 )
145  {
146  dispose();
147  weak_release();
148  }
149  }
int atomic_exchange_and_add(int *pw, int dv)
void boost::detail::sp_counted_base::release ( )
inline

Definition at line 150 of file sp_counted_base_gcc_ppc.hpp.

151  {
152  if( atomic_decrement( &use_count_ ) == 0 )
153  {
154  dispose();
155  weak_release();
156  }
157  }
int atomic_decrement(int *pw)
long boost::detail::sp_counted_base::use_count ( ) const
inline

Definition at line 164 of file sp_counted_base_gcc_x86.hpp.

165  {
166  return static_cast<int const volatile &>( use_count_ );
167  }
long boost::detail::sp_counted_base::use_count ( ) const
inline

Definition at line 172 of file sp_counted_base_gcc_ppc.hpp.

173  {
174  return static_cast<int const volatile &>( use_count_ );
175  }
void boost::detail::sp_counted_base::weak_add_ref ( )
inline

Definition at line 151 of file sp_counted_base_gcc_x86.hpp.

152  {
153  atomic_increment( &weak_count_ );
154  }
void atomic_increment(int *pw)
void boost::detail::sp_counted_base::weak_add_ref ( )
inline

Definition at line 159 of file sp_counted_base_gcc_ppc.hpp.

160  {
161  atomic_increment( &weak_count_ );
162  }
void atomic_increment(int *pw)
void boost::detail::sp_counted_base::weak_release ( )
inline

Definition at line 156 of file sp_counted_base_gcc_x86.hpp.

157  {
158  if( atomic_exchange_and_add( &weak_count_, -1 ) == 1 )
159  {
160  destroy();
161  }
162  }
int atomic_exchange_and_add(int *pw, int dv)
void boost::detail::sp_counted_base::weak_release ( )
inline

Definition at line 164 of file sp_counted_base_gcc_ppc.hpp.

165  {
166  if( atomic_decrement( &weak_count_ ) == 0 )
167  {
168  destroy();
169  }
170  }
int atomic_decrement(int *pw)

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