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