Logo ROOT   6.16/01
Reference Guide
TObject.h
Go to the documentation of this file.
1// @(#)root/base:$Id$
2// Author: Rene Brun 26/12/94
3
4/*************************************************************************
5 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TObject
13#define ROOT_TObject
14
15
16#include "RConfigure.h"
17#include "Rtypes.h"
18#include "TStorage.h"
19#include "TVersionCheck.h"
20
21#include <stdarg.h>
22#include <string>
23#include <iosfwd>
24
25#ifdef WIN32
26#undef RemoveDirectory
27#endif
28
29class TList;
30class TBrowser;
31class TBuffer;
32class TObjArray;
33class TMethod;
34class TTimer;
35
36
37class TObject {
38
39private:
40 UInt_t fUniqueID; ///< object unique identifier
41 UInt_t fBits; ///< bit field status word
42
43 static Long_t fgDtorOnly; ///< object for which to call dtor only (i.e. no delete)
44 static Bool_t fgObjectStat; ///< if true keep track of objects in TObjectTable
45
46 static void AddToTObjectTable(TObject *);
47
48protected:
49 void MakeZombie() { fBits |= kZombie; }
50 virtual void DoError(int level, const char *location, const char *fmt, va_list va) const;
51
52public:
53 //----- Global bits (can be set for any object and should not be reused).
54 //----- Bits 0 - 13 are reserved as global bits. Bits 14 - 23 can be used
55 //----- in different class hierarchies (make sure there is no overlap in
56 //----- any given hierarchy).
58 kCanDelete = BIT(0), ///< if object in a list can be deleted
59 // 2 is taken by TDataMember
60 kMustCleanup = BIT(3), ///< if object destructor must call RecursiveRemove()
61 kIsReferenced = BIT(4), ///< if object is referenced by a TRef or TRefArray
62 kHasUUID = BIT(5), ///< if object has a TUUID (its fUniqueID=UUIDNumber)
63 kCannotPick = BIT(6), ///< if object in a pad cannot be picked
64 // 7 is taken by TAxis and TClass.
65 kNoContextMenu = BIT(8), ///< if object does not want context menu
66 // 9, 10 are taken by TH1, TF1, TAxis and a few others
67 // 12 is taken by TAxis
68 kInvalidObject = BIT(13) ///< if object ctor succeeded but object should not be used
69 };
70
72 kObjInCanvas = BIT(3) ///< for backward compatibility only, use kMustCleanup
73 };
74
75 //----- Private bits, clients can only test but not change them
76 enum {
77 kIsOnHeap = 0x01000000, ///< object is on heap
78 kNotDeleted = 0x02000000, ///< object has not been deleted
79 kZombie = 0x04000000, ///< object ctor failed
80 kInconsistent = 0x08000000, ///< class overload Hash but does call RecursiveRemove in destructor
81 // kCheckedHash = 0x10000000, ///< CheckedHash has check for the consistency of Hash/RecursiveRemove
82 kBitMask = 0x00ffffff
83 };
84
85 //----- Write() options
86 enum {
87 kSingleKey = BIT(0), ///< write collection with single key
88 kOverwrite = BIT(1), ///< overwrite existing object with same name
89 kWriteDelete = BIT(2) ///< write object, then delete previous key with same name
90 };
91
92 TObject();
93 TObject(const TObject &object);
94 TObject &operator=(const TObject &rhs);
95 virtual ~TObject();
96
97 virtual void AppendPad(Option_t *option="");
98 virtual void Browse(TBrowser *b);
99 virtual const char *ClassName() const;
100 virtual void Clear(Option_t * /*option*/ ="") { }
101 ULong_t CheckedHash(); // Not virtual
102 virtual TObject *Clone(const char *newname="") const;
103 virtual Int_t Compare(const TObject *obj) const;
104 virtual void Copy(TObject &object) const;
105 virtual void Delete(Option_t *option=""); // *MENU*
106 virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
107 virtual void Draw(Option_t *option="");
108 virtual void DrawClass() const; // *MENU*
109 virtual TObject *DrawClone(Option_t *option="") const; // *MENU*
110 virtual void Dump() const; // *MENU*
111 virtual void Execute(const char *method, const char *params, Int_t *error=0);
112 virtual void Execute(TMethod *method, TObjArray *params, Int_t *error=0);
113 virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py);
114 virtual TObject *FindObject(const char *name) const;
115 virtual TObject *FindObject(const TObject *obj) const;
116 virtual Option_t *GetDrawOption() const;
117 virtual UInt_t GetUniqueID() const;
118 virtual const char *GetName() const;
119 virtual const char *GetIconName() const;
120 virtual Option_t *GetOption() const { return ""; }
121 virtual char *GetObjectInfo(Int_t px, Int_t py) const;
122 virtual const char *GetTitle() const;
123 virtual Bool_t HandleTimer(TTimer *timer);
125 virtual ULong_t Hash() const;
126 virtual Bool_t InheritsFrom(const char *classname) const;
127 virtual Bool_t InheritsFrom(const TClass *cl) const;
128 virtual void Inspect() const; // *MENU*
129 virtual Bool_t IsFolder() const;
130 virtual Bool_t IsEqual(const TObject *obj) const;
131 virtual Bool_t IsSortable() const { return kFALSE; }
132
135
136 virtual Bool_t Notify();
137 virtual void ls(Option_t *option="") const;
138 virtual void Paint(Option_t *option="");
139 virtual void Pop();
140 virtual void Print(Option_t *option="") const;
141 virtual Int_t Read(const char *name);
142 virtual void RecursiveRemove(TObject *obj);
143 virtual void SaveAs(const char *filename="",Option_t *option="") const; // *MENU*
144 virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
145 virtual void SetDrawOption(Option_t *option=""); // *MENU*
146 virtual void SetUniqueID(UInt_t uid);
147 virtual void UseCurrentStyle();
148 virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0);
149 virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0) const;
150
151 //----- operators
152 void *operator new(size_t sz) { return TStorage::ObjectAlloc(sz); }
153 void *operator new[](size_t sz) { return TStorage::ObjectAllocArray(sz); }
154 void *operator new(size_t sz, void *vp) { return TStorage::ObjectAlloc(sz, vp); }
155 void *operator new[](size_t sz, void *vp) { return TStorage::ObjectAlloc(sz, vp); }
156 void operator delete(void *ptr);
157 void operator delete[](void *ptr);
158#ifdef R__SIZEDDELETE
159 // Sized deallocation.
160 void operator delete(void*, size_t);
161 void operator delete[](void*, size_t);
162#endif
163#ifdef R__PLACEMENTDELETE
164 void operator delete(void *ptr, void *vp);
165 void operator delete[](void *ptr, void *vp);
166#endif
167
168 //----- bit manipulation
169 void SetBit(UInt_t f, Bool_t set);
170 void SetBit(UInt_t f) { fBits |= f & kBitMask; }
171 void ResetBit(UInt_t f) { fBits &= ~(f & kBitMask); }
172 R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const { return (Bool_t) ((fBits & f) != 0); }
173 Int_t TestBits(UInt_t f) const { return (Int_t) (fBits & f); }
175
176 //---- error handling
177 virtual void Info(const char *method, const char *msgfmt, ...) const
178#if defined(__GNUC__) && !defined(__CINT__)
179 __attribute__((format(printf, 3, 4))) /* 1 is the this pointer */
180#endif
181 ;
182 virtual void Warning(const char *method, const char *msgfmt, ...) const
183#if defined(__GNUC__) && !defined(__CINT__)
184 __attribute__((format(printf, 3, 4))) /* 1 is the this pointer */
185#endif
186 ;
187 virtual void Error(const char *method, const char *msgfmt, ...) const
188#if defined(__GNUC__) && !defined(__CINT__)
189 __attribute__((format(printf, 3, 4))) /* 1 is the this pointer */
190#endif
191 ;
192 virtual void SysError(const char *method, const char *msgfmt, ...) const
193#if defined(__GNUC__) && !defined(__CINT__)
194 __attribute__((format(printf, 3, 4))) /* 1 is the this pointer */
195#endif
196 ;
197 virtual void Fatal(const char *method, const char *msgfmt, ...) const
198#if defined(__GNUC__) && !defined(__CINT__)
199 __attribute__((format(printf, 3, 4))) /* 1 is the this pointer */
200#endif
201 ;
202
203 void AbstractMethod(const char *method) const;
204 void MayNotUse(const char *method) const;
205 void Obsolete(const char *method, const char *asOfVers, const char *removedFromVers) const;
206
207 //---- static functions
208 static Long_t GetDtorOnly();
209 static void SetDtorOnly(void *obj);
210 static Bool_t GetObjectStat();
211 static void SetObjectStat(Bool_t stat);
212
213 friend class TClonesArray; // needs to reset kNotDeleted in fBits
214
215 ClassDef(TObject,1) //Basic ROOT object
216};
217
218////////////////////////////////////////////////////////////////////////////////
219/// TObject constructor. It sets the two data words of TObject to their
220/// initial values. The unique ID is set to 0 and the status word is
221/// set depending if the object is created on the stack or allocated
222/// on the heap. Depending on the ROOT environment variable "Root.MemStat"
223/// (see TEnv) the object is added to the global TObjectTable for
224/// bookkeeping.
225
226inline TObject::TObject() : fBits(kNotDeleted) // Need to leave fUniqueID unset
227{
228 // This will be reported by valgrind as uninitialized memory reads for
229 // object created on the stack, use $ROOTSYS/etc/valgrind-root.supp
231
232 fUniqueID = 0;
233
234#ifdef R__WIN32
236#else
238#endif
239}
240
241////////////////////////////////////////////////////////////////////////////////
242/// TObject copy ctor.
243
244inline TObject::TObject(const TObject &obj)
245{
246 fBits = obj.fBits;
247
248 // This will be reported by valgrind as uninitialized memory reads for
249 // object created on the stack, use $ROOTSYS/etc/valgrind-root.supp
251 fBits |= kIsOnHeap;
252 else
253 fBits &= ~kIsOnHeap;
254
255 fBits &= ~kIsReferenced;
256 fBits &= ~kCanDelete;
257
258 // Set only after used in above call
259 fUniqueID = obj.fUniqueID; // when really unique don't copy
260
261#ifdef R__WIN32
263#else
265#endif
266}
267
268////////////////////////////////////////////////////////////////////////////////
269/// TObject assignment operator.
270
272{
273 if (R__likely(this != &rhs)) {
274 fUniqueID = rhs.fUniqueID; // when really unique don't copy
275 if (IsOnHeap()) { // test uses fBits so don't move next line
276 fBits = rhs.fBits;
277 fBits |= kIsOnHeap;
278 } else {
279 fBits = rhs.fBits;
280 fBits &= ~kIsOnHeap;
281 }
282 fBits &= ~kIsReferenced;
283 fBits &= ~kCanDelete;
284 }
285 return *this;
286}
287
288
289////////////////////////////////////////////////////////////////////////////////
290/// @brief Check and record whether this class has a consistent
291/// Hash/RecursiveRemove setup (*) and then return the regular Hash value for
292/// this object. The intent is for this routine to be called instead of directly
293/// calling the function Hash during "insert" operations. See TObject::HasInconsistenTObjectHash();
294///
295/// (*) The setup is consistent when all classes in the class hierarchy that overload
296/// TObject::Hash do call ROOT::CallRecursiveRemoveIfNeeded in their destructor.
297/// i.e. it is safe to call the Hash virtual function during the RecursiveRemove operation.
298
300{
301 // Testing and recording whether we already called HasInconstistentTObjectHash
302 // for this object could save some cpu cycles in some circuntances (at the cost
303 // of reserving yet another bit).
304 // For each insert (CheckedHash is called only for insert in THashList/THashTable), it
305 // cost one memory fetch, one arithmetic operation and one branching.
306 // This save a virtual function call which itself contains a static variable memory
307 // fetch, a branching (of whether the static was already set or not).
308 // Given that a virtual function call is essentially 2 memory fetches (virtual table
309 // location and then content), one arithmetic operation and one function call/jump),
310 // we guess-estimate that the version recording-then-testing-prior-check would start
311 // saving cpu cycle when each object is inserted in average 1.5 times in a THashList/THashTable.
312
313 // if ( !fBits & kCheckedHash) {
314 if (!CheckTObjectHashConsistency())
316 // fBits &= kChecked;
317 //}
318 return Hash();
319}
320
321////////////////////////////////////////////////////////////////////////////////
322/// @brief Return true is the type of this object is *known* to have an
323/// inconsistent setup for Hash and RecursiveRemove (i.e. missing call to
324/// RecursiveRemove in destructor).
325///
326/// Note: Since the consistency is only tested for during inserts, this
327/// routine will return true for object that have never been inserted
328/// whether or not they have a consistent setup. This has no negative
329/// side-effect as searching for the object with the right or wrong
330/// Hash will always yield a not-found answer (Since anyway no hash
331/// can be guaranteed unique, there is always a check)
332
334{
335 return fBits & kInconsistent;
336}
337
338// Global bits (can be set for any object and should not be reused).
339// Only here for backward compatibility reasons.
340// For detailed description see TObject::EStatusBits above.
351
352namespace cling {
353 std::string printValue(TObject *val);
354}
355
356#endif
#define R__ALWAYS_INLINE
Definition: RConfig.hxx:556
#define R__likely(expr)
Definition: RConfig.hxx:579
#define R__unlikely(expr)
Definition: RConfig.hxx:578
#define b(i)
Definition: RSha256.hxx:100
#define f(i)
Definition: RSha256.hxx:104
int Int_t
Definition: RtypesCore.h:41
unsigned int UInt_t
Definition: RtypesCore.h:42
const Bool_t kFALSE
Definition: RtypesCore.h:88
unsigned long ULong_t
Definition: RtypesCore.h:51
long Long_t
Definition: RtypesCore.h:50
bool Bool_t
Definition: RtypesCore.h:59
const char Option_t
Definition: RtypesCore.h:62
#define ClassDef(name, id)
Definition: Rtypes.h:324
#define BIT(n)
Definition: Rtypes.h:82
EObjBits
Definition: TObject.h:341
@ kCanDelete
Definition: TObject.h:342
@ kIsReferenced
Definition: TObject.h:345
@ kCannotPick
Definition: TObject.h:347
@ kInvalidObject
Definition: TObject.h:349
@ kObjInCanvas
Definition: TObject.h:344
@ kNoContextMenu
Definition: TObject.h:348
@ kMustCleanup
Definition: TObject.h:343
@ kHasUUID
Definition: TObject.h:346
Using a TBrowser one can browse all ROOT objects.
Definition: TBrowser.h:37
Buffer base class used for serializing objects.
Definition: TBuffer.h:40
The ROOT global object gROOT contains a list of all defined classes.
Definition: TClass.h:75
An array of clone (identical) objects.
Definition: TClonesArray.h:32
A doubly linked list.
Definition: TList.h:44
Each ROOT class (see TClass) has a linked list of methods.
Definition: TMethod.h:38
An array of TObjects.
Definition: TObjArray.h:37
Mother of all ROOT objects.
Definition: TObject.h:37
void AbstractMethod(const char *method) const
Use this method to implement an "abstract" method that you don't want to leave purely abstract.
Definition: TObject.cxx:922
virtual Bool_t IsFolder() const
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).
Definition: TObject.cxx:473
virtual void Inspect() const
Dump contents of this object in a graphics canvas.
Definition: TObject.cxx:464
virtual void Clear(Option_t *="")
Definition: TObject.h:100
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
Computes distance from point (px,py) to the object.
Definition: TObject.cxx:186
Bool_t HasInconsistentHash() const
Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveR...
Definition: TObject.h:333
static void SetObjectStat(Bool_t stat)
Turn on/off tracking of objects in the TObjectTable.
Definition: TObject.cxx:961
virtual Bool_t Notify()
This method must be overridden to handle object notification.
Definition: TObject.cxx:506
ULong_t CheckedHash()
Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return t...
Definition: TObject.h:299
virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0)
Write this object to the current directory.
Definition: TObject.cxx:785
virtual Bool_t IsEqual(const TObject *obj) const
Default equal comparison (objects are equal if they have the same address in memory).
Definition: TObject.cxx:483
@ kIsOnHeap
object is on heap
Definition: TObject.h:77
@ kNotDeleted
object has not been deleted
Definition: TObject.h:78
@ kBitMask
Definition: TObject.h:82
@ kZombie
object ctor failed
Definition: TObject.h:79
@ kInconsistent
class overload Hash but does call RecursiveRemove in destructor
Definition: TObject.h:80
virtual const char * GetName() const
Returns name of object.
Definition: TObject.cxx:357
TObject & operator=(const TObject &rhs)
TObject assignment operator.
Definition: TObject.h:271
virtual void Browse(TBrowser *b)
Browse object. May be overridden for another default action.
Definition: TObject.cxx:119
void SetBit(UInt_t f)
Definition: TObject.h:170
virtual void Dump() const
Dump contents of object on stdout.
Definition: TObject.cxx:266
UInt_t fUniqueID
object unique identifier
Definition: TObject.h:40
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
Definition: TObject.h:172
virtual const char * GetIconName() const
Returns mime type name of object.
Definition: TObject.cxx:367
virtual void RecursiveRemove(TObject *obj)
Recursively remove this object from a list.
Definition: TObject.cxx:572
virtual void DoError(int level, const char *location, const char *fmt, va_list va) const
Interface to ErrorHandler (protected).
Definition: TObject.cxx:841
virtual Bool_t HandleTimer(TTimer *timer)
Execute action in response of a timer timing out.
Definition: TObject.cxx:411
virtual TObject * Clone(const char *newname="") const
Make a clone of an object using the Streamer facility.
Definition: TObject.cxx:144
virtual UInt_t GetUniqueID() const
Return the unique object id.
Definition: TObject.cxx:375
UInt_t fBits
bit field status word
Definition: TObject.h:41
static Long_t GetDtorOnly()
Return destructor only flag.
Definition: TObject.cxx:969
virtual Bool_t IsSortable() const
Definition: TObject.h:131
virtual Option_t * GetOption() const
Definition: TObject.h:120
void InvertBit(UInt_t f)
Definition: TObject.h:174
virtual void Execute(const char *method, const char *params, Int_t *error=0)
Execute method on this object with the given parameter string, e.g.
Definition: TObject.cxx:277
virtual void SysError(const char *method, const char *msgfmt,...) const
Issue system error message.
Definition: TObject.cxx:894
R__ALWAYS_INLINE Bool_t IsOnHeap() const
Definition: TObject.h:133
virtual const char * ClassName() const
Returns name of class to which the object belongs.
Definition: TObject.cxx:128
virtual void UseCurrentStyle()
Set current style settings in this object This function is called when either TCanvas::UseCurrentStyl...
Definition: TObject.cxx:715
virtual Option_t * GetDrawOption() const
Get option used by the graphics system to draw this object.
Definition: TObject.cxx:341
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
Definition: TObject.cxx:866
void MayNotUse(const char *method) const
Use this method to signal that a method (defined in a base class) may not be called in a derived clas...
Definition: TObject.cxx:933
static Long_t fgDtorOnly
object for which to call dtor only (i.e. no delete)
Definition: TObject.h:43
virtual TObject * DrawClone(Option_t *option="") const
Draw a clone of this object in the current selected pad for instance with: gROOT->SetSelectedPad(gPad...
Definition: TObject.cxx:219
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py)
Execute action corresponding to an event at (px,py).
Definition: TObject.cxx:311
virtual TObject * FindObject(const char *name) const
Must be redefined in derived classes.
Definition: TObject.cxx:321
virtual void AppendPad(Option_t *option="")
Append graphics object to current pad.
Definition: TObject.cxx:105
virtual char * GetObjectInfo(Int_t px, Int_t py) const
Returns string containing info about the object at position (px,py).
Definition: TObject.cxx:386
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
Definition: TObject.cxx:664
R__ALWAYS_INLINE Bool_t IsZombie() const
Definition: TObject.h:134
@ kOverwrite
overwrite existing object with same name
Definition: TObject.h:88
@ kSingleKey
write collection with single key
Definition: TObject.h:87
@ kWriteDelete
write object, then delete previous key with same name
Definition: TObject.h:89
virtual void SaveAs(const char *filename="", Option_t *option="") const
Save this object in the file specified by filename.
Definition: TObject.cxx:599
virtual void Delete(Option_t *option="")
Delete this object.
Definition: TObject.cxx:169
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
Definition: TObject.cxx:694
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
Definition: TObject.cxx:443
static Bool_t GetObjectStat()
Get status of object stat flag.
Definition: TObject.cxx:954
virtual void Copy(TObject &object) const
Copy this to obj.
Definition: TObject.cxx:61
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
Definition: TObject.cxx:880
virtual void SetDrawOption(Option_t *option="")
Set drawing option for object.
Definition: TObject.cxx:677
virtual void Fatal(const char *method, const char *msgfmt,...) const
Issue fatal error message.
Definition: TObject.cxx:908
static void SetDtorOnly(void *obj)
Set destructor only flag.
Definition: TObject.cxx:977
virtual void SetUniqueID(UInt_t uid)
Set the unique object id.
Definition: TObject.cxx:705
virtual const char * GetTitle() const
Returns title of object.
Definition: TObject.cxx:401
EDeprecatedStatusBits
Definition: TObject.h:71
@ kObjInCanvas
for backward compatibility only, use kMustCleanup
Definition: TObject.h:72
virtual void DrawClass() const
Draw class inheritance tree of the class to which this object belongs.
Definition: TObject.cxx:210
Int_t TestBits(UInt_t f) const
Definition: TObject.h:173
virtual Int_t Compare(const TObject *obj) const
Compare abstract method.
Definition: TObject.cxx:159
void MakeZombie()
Definition: TObject.h:49
virtual ~TObject()
TObject destructor.
Definition: TObject.cxx:79
virtual void Draw(Option_t *option="")
Default Draw method for all objects.
Definition: TObject.cxx:195
virtual void Paint(Option_t *option="")
This method must be overridden if a class wants to paint itself.
Definition: TObject.cxx:519
virtual void Print(Option_t *option="") const
This method must be overridden when a class wants to print itself.
Definition: TObject.cxx:550
virtual void Pop()
Pop on object drawn in a pad to the top of the display list.
Definition: TObject.cxx:528
TObject()
TObject constructor.
Definition: TObject.h:226
virtual ULong_t Hash() const
Return hash value for this object.
Definition: TObject.cxx:433
virtual void ls(Option_t *option="") const
The ls function lists the contents of a class on stdout.
Definition: TObject.cxx:492
static Bool_t fgObjectStat
if true keep track of objects in TObjectTable
Definition: TObject.h:44
void ResetBit(UInt_t f)
Definition: TObject.h:171
EStatusBits
Definition: TObject.h:57
@ kCannotPick
if object in a pad cannot be picked
Definition: TObject.h:63
@ kNoContextMenu
if object does not want context menu
Definition: TObject.h:65
@ kCanDelete
if object in a list can be deleted
Definition: TObject.h:58
@ kHasUUID
if object has a TUUID (its fUniqueID=UUIDNumber)
Definition: TObject.h:62
@ kInvalidObject
if object ctor succeeded but object should not be used
Definition: TObject.h:68
@ kIsReferenced
if object is referenced by a TRef or TRefArray
Definition: TObject.h:61
@ kMustCleanup
if object destructor must call RecursiveRemove()
Definition: TObject.h:60
virtual Int_t Read(const char *name)
Read contents of object with specified name from the current directory.
Definition: TObject.cxx:562
static void AddToTObjectTable(TObject *)
Private helper function which will dispatch to TObjectTable::AddObj.
Definition: TObject.cxx:96
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
Definition: TObject.cxx:854
void Obsolete(const char *method, const char *asOfVers, const char *removedFromVers) const
Use this method to declare a method obsolete.
Definition: TObject.cxx:942
static Bool_t FilledByObjectAlloc(volatile UInt_t *member)
Definition: TStorage.h:89
static void * ObjectAllocArray(size_t size)
Used to allocate array of TObject on the heap (via TObject::operator new[]()).
Definition: TStorage.cxx:340
static void * ObjectAlloc(size_t size)
Used to allocate a TObject on the heap (via TObject::operator new()).
Definition: TStorage.cxx:328
Handles synchronous and a-synchronous timer events.
Definition: TTimer.h:51
Print a TSeq at the prompt:
Definition: TDatime.h:115
std::string printValue(const TDatime *val)
Print a TDatime at the prompt.
Definition: TDatime.cxx:514