thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
ThePEG::Pointer::ReferenceCounted Class Reference

ReferenceCounted must be the (virtual) base class of all classes which may be pointed to by the RCPtr smart pointer class. More...

#include <ReferenceCounted.h>

Inheritance diagram for ThePEG::Pointer::ReferenceCounted:

Public Types

typedef unsigned int CounterType
 The integer type used for counting.
 

Friends

class RCPtrBase
 The RCPtrBase class needs to acces the private parts of ReferenceCounted.
 
class ThePEG::PersistentIStream
 

Standard constructors and assignment.

const unsigned long uniqueId
 The unique ID.
 
static unsigned long objectCounter
 A counter for issuing unique IDs.
 
CounterType theReferenceCounter
 The reference count.
 
 ReferenceCounted ()
 Default constructor.
 
 ReferenceCounted (const ReferenceCounted &)
 Copy-constructor.
 
ReferenceCountedoperator= (const ReferenceCounted &)
 Assignment.
 
CounterType referenceCount () const
 Return the reference count.
 
void incrementReferenceCount () const
 Increment the reference count.
 
bool decrementReferenceCount () const
 Decrement with the reference count.
 

Detailed Description

ReferenceCounted must be the (virtual) base class of all classes which may be pointed to by the RCPtr smart pointer class.

It keeps track of all RCPtr and ConstRCPtr pointers which are currently pointing to an object.

See also
RCPtr
ConstRCPtr

Definition at line 30 of file ReferenceCounted.h.

Member Typedef Documentation

◆ CounterType

The integer type used for counting.

Definition at line 41 of file ReferenceCounted.h.

Constructor & Destructor Documentation

◆ ReferenceCounted() [1/2]

ThePEG::Pointer::ReferenceCounted::ReferenceCounted ( )
inlineprotected

Default constructor.

Definition at line 50 of file ReferenceCounted.h.

◆ ReferenceCounted() [2/2]

ThePEG::Pointer::ReferenceCounted::ReferenceCounted ( const ReferenceCounted )
inlineprotected

Copy-constructor.

Definition at line 57 of file ReferenceCounted.h.

Member Function Documentation

◆ decrementReferenceCount()

bool ThePEG::Pointer::ReferenceCounted::decrementReferenceCount ( ) const
inlineprivate

Decrement with the reference count.

Definition at line 94 of file ReferenceCounted.h.

References theReferenceCounter.

Referenced by ThePEG::Pointer::RCPtrBase::release().

◆ incrementReferenceCount()

void ThePEG::Pointer::ReferenceCounted::incrementReferenceCount ( ) const
inlineprivate

Increment the reference count.

Definition at line 86 of file ReferenceCounted.h.

References theReferenceCounter.

Referenced by ThePEG::Pointer::RCPtrBase::increment().

◆ operator=()

ReferenceCounted & ThePEG::Pointer::ReferenceCounted::operator= ( const ReferenceCounted )
inlineprotected

Assignment.

Definition at line 64 of file ReferenceCounted.h.

◆ referenceCount()

CounterType ThePEG::Pointer::ReferenceCounted::referenceCount ( ) const
inline

Return the reference count.

Definition at line 76 of file ReferenceCounted.h.

References theReferenceCounter.

Friends And Related Function Documentation

◆ RCPtrBase

friend class RCPtrBase
friend

The RCPtrBase class needs to acces the private parts of ReferenceCounted.

Definition at line 33 of file ReferenceCounted.h.

◆ ThePEG::PersistentIStream

friend class ThePEG::PersistentIStream
friend

Definition at line 34 of file ReferenceCounted.h.

Member Data Documentation

◆ objectCounter

unsigned long ThePEG::Pointer::ReferenceCounted::objectCounter
staticprivate

A counter for issuing unique IDs.

It will overflow back to 0 eventually, but it is very unlikely that two identical IDs show up in the same event.

Definition at line 112 of file ReferenceCounted.h.

◆ theReferenceCounter

CounterType ThePEG::Pointer::ReferenceCounted::theReferenceCounter
mutableprivate

The reference count.

Definition at line 117 of file ReferenceCounted.h.

Referenced by decrementReferenceCount(), incrementReferenceCount(), and referenceCount().

◆ uniqueId

const unsigned long ThePEG::Pointer::ReferenceCounted::uniqueId

The unique ID.

Can be used as sorting criterion, e.g. for set<> and map<>.

Definition at line 104 of file ReferenceCounted.h.


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