12#ifndef ROOT_TProcessID 
   13#define ROOT_TProcessID 
   27#ifdef R__LESS_INCLUDES 
   55               static_assert(std::is_pointer<T>::value, 
"Only pointer types supported");
 
#define ClassDef(name, id)
 
Helper class to manage atomic pointers.
 
This class stores a (key,value) pair using an external hash.
 
The TNamed class is the base class for all named ROOT classes.
 
Mother of all ROOT objects.
 
A TProcessID identifies a ROOT job in a unique way in time and space.
 
Int_t IncrementCount()
Increase the reference count to this object.
 
void CheckInit()
Initialize fObjects.
 
static void Cleanup()
static function (called by TROOT destructor) to delete all TProcessIDs
 
static Bool_t IsValid(TProcessID *pid)
static function. return kTRUE if pid is a valid TProcessID
 
static UInt_t GetNProcessIDs()
Return the (static) number of process IDs.
 
virtual void Clear(Option_t *option="")
delete the TObjArray pointing to referenced objects this function is called by TFile::Close("R")
 
static TObjArray * fgPIDs
 
static TObjArray * GetPIDs()
static: returns array of TProcessIDs
 
TProcessID & operator=(const TProcessID &ref)
 
static UInt_t AssignID(TObject *obj)
static function returning the ID assigned to obj If the object is not yet referenced,...
 
virtual void RecursiveRemove(TObject *obj)
called by the object destructor remove reference to obj from the current table if it is referenced
 
static TProcessID * GetSessionProcessID()
static function returning the pointer to the session TProcessID
 
void PutObjectWithID(TObject *obj, UInt_t uid=0)
stores the object at the uid th slot in the table of objects The object uniqued is set as well as its...
 
virtual ~TProcessID()
Destructor.
 
TProcessID(const TProcessID &ref)
 
static TExMap * fgObjPIDs
 
static TProcessID * AddProcessID()
Static function to add a new TProcessID to the list of PIDs.
 
std::atomic_flag fLock
Array pointing to the referenced objects.
 
static TProcessID * GetProcessWithUID(const TObject *obj)
static function returning a pointer to TProcessID with its pid encoded in the highest byte of obj->Ge...
 
static TProcessID * GetProcessID(UShort_t pid)
static function returning a pointer to TProcessID number pid in fgPIDs
 
Int_t DecrementCount()
The reference fCount is used to delete the TProcessID in the TFile destructor when fCount = 0.
 
TObjArray * GetObjects() const
 
TObject * GetObjectWithID(UInt_t uid)
returns the TObject with unique identifier uid in the table of objects
 
static std::atomic_uint fgNumber
 
ROOT::Internal::TAtomicPointer< TObjArray * > fObjects
Reference count to this object (from TFile)
 
static TProcessID * fgPID
Spin lock for initialization of fObjects.
 
TProcessID()
Default constructor.
 
static UInt_t GetObjectCount()
Return the current referenced object count fgNumber is incremented every time a new object is referen...
 
static TProcessID * GetPID()
static: returns pointer to current TProcessID
 
static void SetObjectCount(UInt_t number)
static function to set the current referenced object count fgNumber is incremented every time a new o...
 
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...