ThePEG is hosted by Hepforge, IPPP Durham
ThePEG  2.1.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.
 

Public Member Functions

CounterType referenceCount () const
 Return the reference count.
 

Public Attributes

const unsigned long uniqueId
 The unique ID. More...
 

Protected Member Functions

Standard constructors and assignment.
 ReferenceCounted ()
 Default constructor.
 
 ReferenceCounted (const ReferenceCounted &)
 Copy-constructor.
 
ReferenceCountedoperator= (const ReferenceCounted &)
 Assignment.
 

Private Member Functions

void incrementReferenceCount () const
 Increment the reference count.
 
bool decrementReferenceCount () const
 Decrement with the reference count.
 

Private Attributes

CounterType theReferenceCounter
 The reference count.
 

Static Private Attributes

static unsigned long objectCounter
 A counter for issuing unique IDs. More...
 

Friends

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

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.

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.

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.

◆ 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: