283 if (obj->IsA()->CanIgnoreTObjectStreamer()) {
284 Error(
"operator= ",
"Class: %s IgnoreTObjectStreamer. Cannot reference object",obj->
ClassName());
341#ifdef R__COMPLETE_MEM_TERMINATION
361#ifdef R__COMPLETE_MEM_TERMINATION
412 ((
TRef*)
this)->SetUniqueID(uid);
433 Error(
"SetAction",
"Unknown TExec: %s",
name);
486void TRef::Streamer(
TBuffer &R__b)
490 TObject::Streamer(R__b);
510 if (execid)
SetBit(execid<<16);
516 TObject::Streamer(R__b);
520 objs->
String().Streamer(R__b);
Bool_t operator==(const TRef &r1, const TRef &r2)
Return kTRUE if r1 and r2 point to the same object.
Bool_t operator!=(const TRef &r1, const TRef &r2)
Return kTRUE if r1 and r2 do not point to the same object.
#define R__WRITE_LOCKGUARD(mutex)
Buffer base class used for serializing objects.
virtual UInt_t GetTRefExecId()=0
virtual TProcessID * ReadProcessID(UShort_t pidf)=0
Return the current Process-ID.
virtual UShort_t WriteProcessID(TProcessID *pid)=0
Always return 0 (current processID).
virtual UShort_t GetPidOffset() const =0
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
TExec is a utility class that can be used to execute a C++ command when some event happens in a pad.
virtual void Exec(const char *command="")
Execute the command referenced by this object.
Int_t IndexOf(const TObject *obj) const
virtual TObject * FindObject(const char *name) const
Find an object in this collection using its name.
TObject * At(Int_t idx) const
Collectable string class.
Mother of all ROOT objects.
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
virtual UInt_t GetUniqueID() const
Return the unique object id.
virtual const char * ClassName() const
Returns name of class to which the object belongs.
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
virtual void SetUniqueID(UInt_t uid)
Set the unique object id.
Int_t TestBits(UInt_t f) const
@ kHasUUID
if object has a TUUID (its fUniqueID=UUIDNumber)
@ kIsReferenced
if object is referenced by a TRef or TRefArray
static Bool_t IsValid(TProcessID *pid)
static function. return kTRUE if pid is a valid TProcessID
static UInt_t AssignID(TObject *obj)
static function returning the ID assigned to obj If the object is not yet referenced,...
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...
static TProcessID * GetProcessWithUID(const TObject *obj)
static function returning a pointer to TProcessID with its pid encoded in the highest byte of obj->Ge...
TObject * GetObjectWithID(UInt_t uid)
returns the TObject with unique identifier uid in the table of objects
This class is a specialized TProcessID managing the list of UUIDs.
UInt_t AddUUID(TUUID &uuid, TObject *obj)
Add uuid to the table of UUIDs The TObject *obj has its uniqueID set to the UUID number return entry ...
A TRefTable maintains the association between a referenced object and the parent object supporting th...
virtual Bool_t Notify()
This function is called by TRef::Streamer or TStreamerInfo::ReadBuffer when reading a reference.
static TRefTable * GetRefTable()
Static function returning the current TRefTable.
virtual void SetUID(UInt_t uid, TProcessID *context=0)
Persistent Reference link to a TObject A TRef is a lightweight object pointing to any TObject.
static void SetObject(TObject *obj)
static Obsolete function kept for back compatibility.
static void SetStaticObject(TObject *obj)
Static function to set the object found on the Action on Demand function.
void operator=(TObject *obj)
Assign object to reference.
static TObject * fgObject
TProcessID * GetPID() const
static TObject * GetStaticObject()
Returns the static object.
virtual void SetAction(const char *name)
Store the exec number (in the ROOT list of Execs) into the fBits of this TRef.
TObject * GetObject() const
Return a pointer to the referenced object.
static TObjArray * GetListOfExecs()
Return a pointer to the static TObjArray holding the list of Execs.
static Int_t AddExec(const char *name)
If Exec with name does not exist in the list of Execs, it is created.
static TObjArray * fgExecs
Pointer to ProcessID when TRef was written.
R__EXTERN TVirtualRWMutex * gCoreMutex
static constexpr double s