29 #if !defined(WIN32) && !defined(__MWERKS__) && !defined(R__SOLARIS) 149 if (root ==
this)
return;
168 gROOT->MakeDefCanvas();
170 if (!
gPad->IsEditable())
return;
172 gPad->GetListOfPrimitives()->Add(
this,option);
190 return IsA()->GetName();
209 Fatal(
"Clone",
"No gDirectory set");
285 if (!newobj)
return 0;
291 if (padsav) padsav->
cd();
294 if (strlen(option)) newobj->
Draw(option);
296 if (padsav) padsav->
cd();
342 gInterpreter->Execute(
this, IsA(), method, params, error);
344 if (
gPad && must_cleanup)
gPad->Modified();
360 gInterpreter->Execute(
this, IsA(), method, params, error);
362 if (
gPad && must_cleanup)
gPad->Modified();
402 if (!
gPad)
return "";
406 while ((obj = next())) {
407 if (obj ==
this)
return next.
GetOption();
418 return IsA()->GetName();
447 if (!
gPad)
return (
char*)
"";
448 static char info[64];
462 return IsA()->GetTitle();
481 const void *ptr =
this;
490 return IsA()->InheritsFrom(classname);
498 return IsA()->InheritsFrom(cl);
540 std::cout <<
"OBJ: " << IsA()->GetName() <<
"\t" <<
GetName() <<
"\t" <<
GetTitle() <<
" : ";
542 if (option && strstr(option,
"noaddr")==0) {
543 std::cout <<
" at: "<< this ;
545 std::cout << std::endl;
577 if (
this ==
gPad->GetListOfPrimitives()->Last())
return;
581 while ((obj = next()))
583 char *opt =
StrDup(next.GetOption());
584 gPad->GetListOfPrimitives()->Remove((
TObject*)
this);
585 gPad->GetListOfPrimitives()->AddLast(
this, opt);
597 std::cout <<
"OBJ: " << IsA()->GetName() <<
"\t" <<
GetName() <<
"\t" <<
GetTitle() << std::endl;
647 if (filename && strstr(filename,
".root")) {
653 if (filename && strstr(filename,
".xml")) {
659 if (filename && strstr(filename,
".json")) {
665 if (filename && strstr(filename,
".cc")) {
667 if (filename && strlen(filename) > 0) {
668 fname = (
char*)filename;
673 out.open(fname, std::ios::out);
675 Error(
"SaveAs",
"cannot open file: %s", fname);
678 ((
TObject*)
this)->SavePrimitive(out,
"cc");
680 Info(
"SaveAs",
"cc file: %s has been generated", fname);
686 if (filename && strlen(filename) > 0) {
687 fname = (
char*)filename;
692 out.open(fname, std::ios::out);
694 Error(
"SaveAs",
"cannot open file: %s", fname);
697 out <<
"{"<<std::endl;
698 out <<
"//========= Macro generated from object: "<<
GetName()<<
"/"<<
GetTitle()<<std::endl;
699 out <<
"//========= by ROOT version"<<
gROOT->GetVersion()<<std::endl;
700 ((
TObject*)
this)->SavePrimitive(out,option);
701 out <<
"}"<<std::endl;
703 Info(
"SaveAs",
"C++ Macro file: %s has been generated", fname);
712 <<
". You must implement " <<
ClassName() <<
"::SavePrimitive" << std::endl;
724 if (!
gPad || !option)
return;
727 delete gPad->FindObject(
"Tframe");
729 while ((obj = next()))
731 next.SetOption(option);
818 const char *objname =
"no name specified";
819 if (name) objname =
name;
821 Error(
"Write",
"The current directory (gDirectory) is null. The object (%s) has not been written.",objname);
832 return ((
const TObject*)
this)->Write(name, option, bufsize);
838 void TObject::Streamer(
TBuffer &R__b)
840 if (IsA()->CanIgnoreTObjectStreamer())
return;
856 fUniqueID = fUniqueID | 0xff000000;
858 fUniqueID = ( fUniqueID & 0xffffff) + (gpid<<24);
876 if(table) table->
Add(uid, pid);
888 const char *classname =
"UnknownClass";
902 va_start(ap,
va_(fmt));
914 va_start(ap,
va_(fmt));
918 gROOT->Message(1001,
this);
928 va_start(ap,
va_(fmt));
932 gROOT->Message(1002,
this);
942 va_start(ap,
va_(fmt));
946 gROOT->Message(1003,
this);
956 va_start(ap,
va_(fmt));
960 gROOT->Message(1004,
this);
969 Warning(method,
"this method must be overridden!");
980 Warning(method,
"may not use this method");
987 void TObject::Obsolete(
const char *method,
const char *asOfVers,
const char *removedFromVers)
const 989 const char *classname =
"UnknownClass";
993 ::Obsolete(
Form(
"%s::%s", classname, method), asOfVers, removedFromVers);
1030 void TObject::operator
delete(
void *ptr)
1041 void TObject::operator
delete[](
void *ptr)
1049 #ifdef R__SIZEDDELETE 1053 void TObject::operator
delete(
void *ptr,
size_t size)
1064 void TObject::operator
delete[](
void *ptr,
size_t size)
1077 std::ostringstream strm;
1082 #ifdef R__PLACEMENTDELETE 1086 void TObject::operator
delete(
void *ptr,
void *vp)
1094 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 pad.
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 void Copy(TObject &object) const
Copy this to obj.
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.
TObject & operator=(const TObject &rhs)
TObject assignment operator.
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.
TObject()
TObject constructor.
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
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.
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)...
static Bool_t FilledByObjectAlloc(UInt_t *member)
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
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".