29 #if !defined(WIN32) && !defined(__MWERKS__) && !defined(R__SOLARIS) 62 obj.fUniqueID = fUniqueID;
65 obj.fBits |= kIsOnHeap;
68 obj.fBits &= ~kIsOnHeap;
86 if (root ==
this)
return;
115 gROOT->MakeDefCanvas();
117 if (!
gPad->IsEditable())
return;
119 gPad->GetListOfPrimitives()->Add(
this,option);
137 return IsA()->GetName();
156 Fatal(
"Clone",
"No gDirectory set");
233 if (!newobj)
return 0;
239 if (padsav) padsav->
cd();
242 if (strlen(option)) newobj->
Draw(option);
244 if (padsav) padsav->
cd();
290 gInterpreter->Execute(
this, IsA(), method, params, error);
292 if (
gPad && must_cleanup)
gPad->Modified();
308 gInterpreter->Execute(
this, IsA(), method, params, error);
310 if (
gPad && must_cleanup)
gPad->Modified();
350 if (!
gPad)
return "";
354 while ((obj = next())) {
355 if (obj ==
this)
return next.
GetOption();
366 return IsA()->GetName();
395 if (!
gPad)
return (
char*)
"";
396 static char info[64];
410 return IsA()->GetTitle();
429 const void *ptr =
this;
438 return IsA()->InheritsFrom(classname);
446 return IsA()->InheritsFrom(cl);
488 std::cout <<
"OBJ: " << IsA()->GetName() <<
"\t" <<
GetName() <<
"\t" <<
GetTitle() <<
" : ";
490 if (option && strstr(option,
"noaddr")==0) {
491 std::cout <<
" at: "<< this ;
493 std::cout << std::endl;
525 if (
this ==
gPad->GetListOfPrimitives()->Last())
return;
529 while ((obj = next()))
531 char *opt =
StrDup(next.GetOption());
532 gPad->GetListOfPrimitives()->Remove((
TObject*)
this);
533 gPad->GetListOfPrimitives()->AddLast(
this, opt);
545 std::cout <<
"OBJ: " << IsA()->GetName() <<
"\t" <<
GetName() <<
"\t" <<
GetTitle() << std::endl;
595 if (filename && strstr(filename,
".root")) {
601 if (filename && strstr(filename,
".xml")) {
607 if (filename && strstr(filename,
".json")) {
613 if (filename && strstr(filename,
".cc")) {
615 if (filename && strlen(filename) > 0) {
616 fname = (
char*)filename;
621 out.open(fname, std::ios::out);
623 Error(
"SaveAs",
"cannot open file: %s", fname);
626 ((
TObject*)
this)->SavePrimitive(out,
"cc");
628 Info(
"SaveAs",
"cc file: %s has been generated", fname);
634 if (filename && strlen(filename) > 0) {
635 fname = (
char*)filename;
640 out.open(fname, std::ios::out);
642 Error(
"SaveAs",
"cannot open file: %s", fname);
645 out <<
"{"<<std::endl;
646 out <<
"//========= Macro generated from object: "<<
GetName()<<
"/"<<
GetTitle()<<std::endl;
647 out <<
"//========= by ROOT version"<<
gROOT->GetVersion()<<std::endl;
648 ((
TObject*)
this)->SavePrimitive(out,option);
649 out <<
"}"<<std::endl;
651 Info(
"SaveAs",
"C++ Macro file: %s has been generated", fname);
660 <<
". You must implement " <<
ClassName() <<
"::SavePrimitive" << std::endl;
672 if (!
gPad || !option)
return;
675 delete gPad->FindObject(
"Tframe");
677 while ((obj = next()))
679 next.SetOption(option);
766 const char *objname =
"no name specified";
767 if (name) objname =
name;
769 Error(
"Write",
"The current directory (gDirectory) is null. The object (%s) has not been written.",objname);
780 return ((
const TObject*)
this)->Write(name, option, bufsize);
786 void TObject::Streamer(
TBuffer &R__b)
788 if (IsA()->CanIgnoreTObjectStreamer())
return;
804 fUniqueID = fUniqueID | 0xff000000;
806 fUniqueID = ( fUniqueID & 0xffffff) + (gpid<<24);
824 if(table) table->
Add(uid, pid);
836 const char *classname =
"UnknownClass";
850 va_start(ap,
va_(fmt));
862 va_start(ap,
va_(fmt));
866 gROOT->Message(1001,
this);
876 va_start(ap,
va_(fmt));
880 gROOT->Message(1002,
this);
890 va_start(ap,
va_(fmt));
894 gROOT->Message(1003,
this);
904 va_start(ap,
va_(fmt));
908 gROOT->Message(1004,
this);
917 Warning(method,
"this method must be overridden!");
928 Warning(method,
"may not use this method");
935 void TObject::Obsolete(
const char *method,
const char *asOfVers,
const char *removedFromVers)
const 937 const char *classname =
"UnknownClass";
941 ::Obsolete(
Form(
"%s::%s", classname, method), asOfVers, removedFromVers);
978 void TObject::operator
delete(
void *ptr)
989 void TObject::operator
delete[](
void *ptr)
997 #ifdef R__SIZEDDELETE 1001 void TObject::operator
delete(
void *ptr,
size_t size)
1012 void TObject::operator
delete[](
void *ptr,
size_t size)
1025 std::ostringstream strm;
1030 #ifdef R__PLACEMENTDELETE 1034 void TObject::operator
delete(
void *ptr,
void *vp)
1042 void TObject::operator
delete[](
void *ptr,
void *vp)
virtual void DoError(int level, const char *location, const char *fmt, va_list va) const
Interface to ErrorHandler (protected).
virtual void SysError(const char *method, const char *msgfmt,...) const
Issue system error message.
virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0)
Write this object to the current directory.
virtual UInt_t GetUniqueID() const
Return the unique object id.
object has not been deleted
UInt_t fUniqueID
object unique identifier
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 void Info(const char *method, const char *msgfmt,...) const
Issue info message.
ROOT top level object description.
virtual ULong_t Hash() const
Return hash value for this object.
TSeqCollection * GetListOfCleanups() const
virtual TObject * DrawClone(Option_t *option="") const
Draw a clone of this object in the current selected pad for instance with: gROOT->SetSelectedPad(gPad...
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
Computes distance from point (px,py) to the object.
virtual const char * GetIconName() const
Returns mime type name of object.
Bool_t TestBit(UInt_t f) const
static void SetDtorOnly(void *obj)
Set destructor only flag.
Buffer base class used for serializing objects.
static void SetObjectStat(Bool_t stat)
Turn on/off tracking of objects in the TObjectTable.
void RemoveQuietly(TObject *obj)
Remove an object from the object table.
virtual void Browse(TBrowser *b)
Browse object. May be overridden for another default action.
virtual Int_t Add(Int_t uid, TProcessID *context=0)
Add a new uid to the table.
virtual void Draw(Option_t *option="")
Default Draw method for all objects.
virtual void UseCurrentStyle()
Set current style settings in this object This function is called when either TCanvas::UseCurrentStyl...
virtual UShort_t GetPidOffset() const =0
virtual void Print(Option_t *option="") const
This method must be overridden when a class wants to print itself.
virtual UInt_t WriteVersion(const TClass *cl, Bool_t useBcnt=kFALSE)=0
virtual char * GetObjectInfo(Int_t px, Int_t py) const
Returns string containing info about the object at position (px,py).
virtual TVirtualPad * cd(Int_t subpadnumber=0)=0
UInt_t Hash(ECaseCompare cmp=kExact) const
Return hash value.
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
static Long_t GetDtorOnly()
Return destructor only flag.
overwrite existing object with same name
if object in a list can be deleted
virtual void RecursiveRemove(TObject *obj)
Recursively remove this object from a list.
virtual void AppendPad(Option_t *option="")
Append graphics object to current pad.
static Long_t fgDtorOnly
object for which to call dtor only (i.e. no delete)
virtual const char * ClassName() const
Returns name of class to which the object belongs.
virtual TProcessID * ReadProcessID(UShort_t pidf)=0
Return the current Process-ID.
virtual void SaveAs(const char *filename="", Option_t *option="") const
Save this object in the file specified by filename.
virtual Bool_t Notify()
This method must be overridden to handle object notification.
static Bool_t Initialized()
Return kTRUE if the TROOT object has been initialized.
virtual Bool_t HandleTimer(TTimer *timer)
Execute action in response of a timer timing out.
virtual void Pop()
Pop on object drawn in a pad to the top of the display list.
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...
virtual Int_t Read(const char *name)
Read contents of object with specified name from the current directory.
A TProcessID identifies a ROOT job in a unique way in time and space.
TVirtualPad is an abstract base class for the Pad and Canvas classes.
R__EXTERN TGuiFactory * gGuiFactory
void Obsolete(const char *method, const char *asOfVers, const char *removedFromVers) const
Use this method to declare a method obsolete.
virtual UShort_t WriteProcessID(TProcessID *pid)=0
Always return 0 (current processID).
virtual void ls(Option_t *option="") const
The ls function lists the contents of a class on stdout.
virtual Bool_t IsEqual(const TObject *obj) const
Default equal comparison (objects are equal if they have the same address in memory).
virtual void DrawClass() const
Draw class inheritance tree of the class to which this object belongs.
virtual Option_t * GetDrawOption() const
Get option used by the graphics system to draw this object.
virtual void SetUniqueID(UInt_t uid)
Set the unique object id.
R__EXTERN TROOT * gROOTLocal
virtual void Delete(Option_t *option="")
Delete this object.
Using a TBrowser one can browse all ROOT objects.
virtual void RecursiveRemove(TObject *obj)
Remove object from this collection and recursively remove the object from all other objects (and coll...
std::string printValue(const TDatime *val)
Print a TDatime at the prompt.
virtual TObject * FindObject(const char *name) const
Must be redefined in derived classes.
static TProcessID * GetProcessWithUID(const TObject *obj)
static function returning a pointer to TProcessID with its pid encoded in the highest byte of obj->Ge...
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.
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
virtual void Inspect() const
Dump contents of this object in a graphics canvas.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
char * Form(const char *fmt,...)
Handles synchronous and a-synchronous timer events.
virtual TInspectorImp * CreateInspectorImp(const TObject *obj, UInt_t width, UInt_t height)
Create a batch version of TInspectorImp.
static void IndentLevel()
Functions used by ls() to indent an object hierarchy.
The ROOT global object gROOT contains a list of all defined classes.
virtual TList * GetListOfPrimitives() const =0
virtual Int_t Compare(const TObject *obj) const
Compare abstract method.
write collection with single key
static Bool_t GetObjectStat()
Get status of object stat flag.
if object destructor must call RecursiveRemove()
static void AddObj(TObject *obj)
Add an object to the global object table gObjectTable.
R__EXTERN TObjectTable * gObjectTable
char * StrDup(const char *str)
Duplicate the string str.
UInt_t fBits
bit field status word
virtual void Modified(Bool_t flag=1)=0
virtual void Paint(Option_t *option="")
This method must be overridden if a class wants to paint itself.
static Bool_t fgObjectStat
if true keep track of objects in TObjectTable
void Copy(void *source, void *dest)
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py)
Execute action corresponding to an event at (px,py).
static TRefTable * GetRefTable()
Static function returning the current TRefTable.
virtual void Dump() const
Dump contents of object on stdout.
virtual ~TObject()
TObject destructor.
A TRefTable maintains the association between a referenced object and the parent object supporting th...
virtual Option_t * GetOption() const
Mother of all ROOT objects.
virtual TObject * Clone(const char *newname="") const
Make a clone of an object using the Streamer facility.
virtual const char * GetTitle() const
Returns title of object.
typedef void((*Func_t)())
void ErrorHandler(int level, const char *location, const char *fmt, va_list va)
General error handler function. It calls the user set error handler.
virtual void Add(TObject *obj)
Each ROOT class (see TClass) has a linked list of methods.
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t Double_t b
if object is referenced by a TRef or TRefArray
virtual Bool_t IsFolder() const
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects)...
virtual void Fatal(const char *method, const char *msgfmt,...) const
Issue fatal error message.
virtual void SetDrawOption(Option_t *option="")
Set drawing option for object.
virtual const char * GetName() const
Returns name of object.
write object, then delete previous key with same name
void AbstractMethod(const char *method) const
Use this method to implement an "abstract" method that you don't want to leave purely abstract...
static void ObjectDealloc(void *vp)
Used to deallocate a TObject on the heap (via TObject::operator delete()).
static Int_t AutoBrowse(TObject *obj, TBrowser *browser)
Browse external object inherited from TObject.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
virtual void SkipVersion(const TClass *cl=0)=0
static void AddToTObjectTable(TObject *)
Private helper function which will dispatch to TObjectTable::AddObj.
const char * Data() const
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".