class TProcessID: public TNamed


 TProcessID

 A TProcessID identifies a ROOT job in a unique way in time and space.
 The TProcessID title consists of a TUUID object which provides a globally
 unique identifier (for more see TUUID.h).

 A TProcessID is automatically created by the TROOT constructor.
 When a TFile contains referenced objects (see TRef), the TProcessID
 object is written to the file.
 If a file has been written in multiple sessions (same machine or not),
 a TProcessID is written for each session.
 These objects are used by the class TRef to uniquely identified
 any TObject pointed by a TRef.

 When a referenced object is read from a file (its bit kIsReferenced is set),
 this object is entered into the objects table of the corresponding TProcessID.
 Each TFile has a list of TProcessIDs (see TFile::fProcessIDs) also
 accessible via TProcessID::fgPIDs (for all files).
 When this object is deleted, it is removed from the table via the cleanup
 mechanism invoked by the TObject destructor.

 Each TProcessID has a table (TObjArray *fObjects) that keeps track
 of all referenced objects. If a referenced object has a fUniqueID set,
 a pointer to this unique object may be found via fObjects->At(fUniqueID).
 In the same way, when a TRef::GetObject is called, GetObject uses
 its own fUniqueID to find the pointer to the referenced object.
 See TProcessID::GetObjectWithID and PutObjectWithID.

 When a referenced object is deleted, its slot in fObjects is set to null.

 See also TProcessUUID: a specialized TProcessID to manage the single list
 of TUUIDs.


Function Members (Methods)

public:
TProcessID()
virtual~TProcessID()
voidTObject::AbstractMethod(const char* method) const
static TProcessID*AddProcessID()
virtual voidTObject::AppendPad(Option_t* option = "")
static UInt_tAssignID(TObject* obj)
virtual voidTObject::Browse(TBrowser* b)
voidCheckInit()
static TClass*Class()
virtual const char*TObject::ClassName() const
static voidCleanup()
virtual voidClear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
Int_tDecrementCount()
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Int_tGetCount() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual const char*TNamed::GetName() const
static UInt_tGetNProcessIDs()
static UInt_tGetObjectCount()
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
TObjArray*GetObjects() const
static Bool_tTObject::GetObjectStat()
TObject*GetObjectWithID(UInt_t uid)
virtual Option_t*TObject::GetOption() const
static TProcessID*GetPID()
static TObjArray*GetPIDs()
static TProcessID*GetProcessID(UShort_t pid)
static TProcessID*GetProcessWithUID(const TObject* obj)
static TProcessID*GetProcessWithUID(UInt_t uid, const void* obj)
static TProcessID*GetSessionProcessID()
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
Int_tIncrementCount()
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
static Bool_tIsValid(TProcessID* pid)
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
voidPutObjectWithID(TObject* obj, UInt_t uid = 0)
virtual Int_tTObject::Read(const char* name)
virtual voidRecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidSetObjectCount(UInt_t number)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
private:
TProcessID(const TProcessID& ref)
TProcessID&operator=(const TProcessID& ref)

Data Members

public:
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
Int_tfCount!Reference count to this object (from TFile)
TStringTNamed::fNameobject identifier
TObjArray*fObjects!Array pointing to the referenced objects
TStringTNamed::fTitleobject title
static UInt_tfgNumberReferenced objects count
static TExMap*fgObjPIDsTable pointer to pids
static TProcessID*fgPIDPointer to current session ProcessID
static TObjArray*fgPIDsTable of ProcessIDs

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TProcessID()
 Default constructor.
~TProcessID()
 Destructor.
TProcessID * AddProcessID()
 Static function to add a new TProcessID to the list of PIDs.
UInt_t AssignID(TObject* obj)
 static function returning the ID assigned to obj
 If the object is not yet referenced, its kIsReferenced bit is set
 and its fUniqueID set to the current number of referenced objects so far.
void CheckInit()
 Initialize fObjects.
void Cleanup()
 static function (called by TROOT destructor) to delete all TProcessIDs
void Clear(Option_t* option = "")
 delete the TObjArray pointing to referenced objects
 this function is called by TFile::Close("R")
Int_t DecrementCount()
TProcessID * GetProcessID(UShort_t pid)
 static function returning a pointer to TProcessID number pid in fgPIDs
UInt_t GetNProcessIDs()
 Return the (static) number of process IDs.
TProcessID * GetProcessWithUID(UInt_t uid, const void* obj)
 static function returning a pointer to TProcessID with its pid
 encoded in the highest byte of uid
TProcessID * GetProcessWithUID(const TObject* obj)
 static function returning a pointer to TProcessID with its pid
 encoded in the highest byte of obj->GetUniqueID()
TProcessID * GetSessionProcessID()
 static function returning the pointer to the session TProcessID
Int_t IncrementCount()
 Increase the reference count to this object.
UInt_t GetObjectCount()
 Return the current referenced object count
 fgNumber is incremented everytime a new object is referenced
TObject * GetObjectWithID(UInt_t uid)
returns the TObject with unique identifier uid in the table of objects
TProcessID * GetPID()
static: returns pointer to current TProcessID
TObjArray * GetPIDs()
static: returns array of TProcessIDs
Bool_t IsValid(TProcessID* pid)
 static function. return kTRUE if pid is a valid TProcessID
void PutObjectWithID(TObject* obj, UInt_t uid = 0)
stores the object at the uid th slot in the table of objects
The object uniqueid is set as well as its kMustCleanup bit
void RecursiveRemove(TObject* obj)
 called by the object destructor
 remove reference to obj from the current table if it is referenced
void SetObjectCount(UInt_t number)
 static function to set the current referenced object count
 fgNumber is incremented everytime a new object is referenced
TProcessID(const TProcessID& ref)
TProcessID& operator=(const TProcessID& ref)
Int_t GetCount() const
{return fCount;}
TObjArray * GetObjects() const
{return fObjects;}

Author: Rene Brun 28/09/2001
Last change: root/cont:$Id: TProcessID.h 26606 2008-12-02 20:36:09Z pcanal $
Last generated: 2008-12-03 08:49
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.