Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
CLHEP::sp::abstract_ctrl_block Class Referenceabstract

#include <memory.h>

Inheritance diagram for CLHEP::sp::abstract_ctrl_block:
CLHEP::noncopyable CLHEP::sp::ctrl_block_p< P > CLHEP::sp::ctrl_block_pd< P, D > CLHEP::sp::ctrl_block_pda< P, D, A >

Public Member Functions

void class_invariant () const throw ()
 
 abstract_ctrl_block ()
 
virtual ~abstract_ctrl_block () throw ()
 
void add_ref ()
 
bool add_ref_lock ()
 
void weak_add_ref () throw ()
 
virtual voidget_deleter (std::type_info const &ti)=0
 
void release () throw ()
 
void weak_release () throw ()
 
virtual void dispose ()=0 throw ()
 
virtual void destroy () throw ()
 
long use_count () const throw ()
 

Additional Inherited Members

- Protected Member Functions inherited from CLHEP::noncopyable
 noncopyable () throw ()
 
 ~noncopyable () throw ()
 

Detailed Description

Definition at line 98 of file memory.h.

Constructor & Destructor Documentation

CLHEP::sp::abstract_ctrl_block::abstract_ctrl_block ( )
inline

Definition at line 134 of file memory.h.

References class_invariant().

135  : n_shared_ptrs( 1 )
136  , n_weak_ptrs ( 1 )
137 {
138  class_invariant();
139 }
void class_invariant() const
Definition: memory.h:129
CLHEP::sp::abstract_ctrl_block::~abstract_ctrl_block ( )
throw (
)
inlinevirtual

Definition at line 141 of file memory.h.

References class_invariant().

142 {
143  class_invariant();
144 }
void class_invariant() const
Definition: memory.h:129

Member Function Documentation

void CLHEP::sp::abstract_ctrl_block::add_ref ( )
inline

Definition at line 147 of file memory.h.

References class_invariant().

Referenced by CLHEP::sp::shared_ctrl_handle::operator=().

148 {
149  class_invariant();
150  ++n_shared_ptrs;
151 }
void class_invariant() const
Definition: memory.h:129
bool CLHEP::sp::abstract_ctrl_block::add_ref_lock ( )
inline

Definition at line 154 of file memory.h.

References class_invariant().

Referenced by CLHEP::sp::shared_ctrl_handle::shared_ctrl_handle().

155 {
156  class_invariant();
157  return n_shared_ptrs ? ++n_shared_ptrs : false;
158 }
void class_invariant() const
Definition: memory.h:129
void CLHEP::sp::abstract_ctrl_block::class_invariant ( ) const
throw (
)
inline

Definition at line 129 of file memory.h.

References assert.

Referenced by abstract_ctrl_block(), add_ref(), add_ref_lock(), release(), use_count(), weak_add_ref(), weak_release(), and ~abstract_ctrl_block().

130 {
131  assert( n_shared_ptrs == 0 || n_weak_ptrs >= 1 );
132 }
#define assert(x)
Definition: mymalloc.cc:1309
void CLHEP::sp::abstract_ctrl_block::destroy ( )
throw (
)
inlinevirtual

Reimplemented in CLHEP::sp::ctrl_block_pda< P, D, A >.

Definition at line 184 of file memory.h.

References assert.

Referenced by weak_release().

185 {
186  assert( n_weak_ptrs == 0 );
187  delete this;
188 }
#define assert(x)
Definition: mymalloc.cc:1309
virtual void CLHEP::sp::abstract_ctrl_block::dispose ( )
throw (
)
pure virtual
virtual void* CLHEP::sp::abstract_ctrl_block::get_deleter ( std::type_info const &  ti)
pure virtual
void CLHEP::sp::abstract_ctrl_block::release ( )
throw (
)
inline

Definition at line 168 of file memory.h.

References class_invariant(), dispose(), and weak_release().

Referenced by CLHEP::sp::shared_ctrl_handle::~shared_ctrl_handle().

169 {
170  class_invariant();
171  if( 0 == --n_shared_ptrs )
172  dispose(), weak_release();
173 }
void class_invariant() const
Definition: memory.h:129
long CLHEP::sp::abstract_ctrl_block::use_count ( ) const
throw (
)
inline

Definition at line 191 of file memory.h.

References class_invariant().

Referenced by CLHEP::sp::shared_ctrl_handle::use_count(), and CLHEP::sp::weak_ctrl_handle::use_count().

192 {
193  class_invariant();
194  return n_shared_ptrs;
195 }
void class_invariant() const
Definition: memory.h:129
void CLHEP::sp::abstract_ctrl_block::weak_add_ref ( )
throw (
)
inline

Definition at line 161 of file memory.h.

References class_invariant().

Referenced by CLHEP::sp::weak_ctrl_handle::operator=(), and CLHEP::sp::weak_ctrl_handle::weak_ctrl_handle().

162 {
163  class_invariant();
164  ++n_weak_ptrs;
165 }
void class_invariant() const
Definition: memory.h:129
void CLHEP::sp::abstract_ctrl_block::weak_release ( )
throw (
)
inline

Definition at line 176 of file memory.h.

References class_invariant(), and destroy().

Referenced by CLHEP::sp::weak_ctrl_handle::operator=(), release(), and CLHEP::sp::weak_ctrl_handle::~weak_ctrl_handle().

177 {
178  class_invariant();
179  if( 0 == --n_weak_ptrs )
180  destroy();
181 }
virtual void destroy()
Definition: memory.h:184
void class_invariant() const
Definition: memory.h:129

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