#ifndef ROOT_TObject
#define ROOT_TObject
#ifndef ROOT_Rtypes
#include "Rtypes.h"
#endif
#ifndef ROOT_TStorage
#include "TStorage.h"
#endif
#ifndef ROOT_TVersionCheck
#include "TVersionCheck.h"
#endif
#ifndef ROOT_Riosfwd
#include "Riosfwd.h"
#endif
#include <stdarg.h>
#ifdef WIN32
#undef RemoveDirectory
#endif
class TList;
class TBrowser;
class TBuffer;
class TObjArray;
class TMethod;
class TTimer;
class TObject {
private:
UInt_t fUniqueID;
UInt_t fBits;
static Long_t fgDtorOnly;
static Bool_t fgObjectStat;
protected:
void MakeZombie() { fBits |= kZombie; }
virtual void DoError(int level, const char *location, const char *fmt, va_list va) const;
public:
enum EStatusBits {
kCanDelete = BIT(0),
kMustCleanup = BIT(3),
kObjInCanvas = BIT(3),
kIsReferenced = BIT(4),
kHasUUID = BIT(5),
kCannotPick = BIT(6),
kNoContextMenu = BIT(8),
kInvalidObject = BIT(13)
};
enum {
kIsOnHeap = 0x01000000,
kNotDeleted = 0x02000000,
kZombie = 0x04000000,
kBitMask = 0x00ffffff
};
enum {
kSingleKey = BIT(0),
kOverwrite = BIT(1),
kWriteDelete = BIT(2)
};
TObject();
TObject(const TObject &object);
TObject &operator=(const TObject &rhs);
virtual ~TObject();
virtual void AppendPad(Option_t *option="");
virtual void Browse(TBrowser *b);
virtual const char *ClassName() const;
virtual void Clear(Option_t * ="") { }
virtual TObject *Clone(const char *newname="") const;
virtual Int_t Compare(const TObject *obj) const;
virtual void Copy(TObject &object) const;
virtual void Delete(Option_t *option="");
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
virtual void Draw(Option_t *option="");
virtual void DrawClass() const;
virtual TObject *DrawClone(Option_t *option="") const;
virtual void Dump() const;
virtual void Execute(const char *method, const char *params, Int_t *error=0);
virtual void Execute(TMethod *method, TObjArray *params, Int_t *error=0);
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py);
virtual TObject *FindObject(const char *name) const;
virtual TObject *FindObject(const TObject *obj) const;
virtual Option_t *GetDrawOption() const;
virtual UInt_t GetUniqueID() const;
virtual const char *GetName() const;
virtual const char *GetIconName() const;
virtual Option_t *GetOption() const { return ""; }
virtual char *GetObjectInfo(Int_t px, Int_t py) const;
virtual const char *GetTitle() const;
virtual Bool_t HandleTimer(TTimer *timer);
virtual ULong_t Hash() const;
virtual Bool_t InheritsFrom(const char *classname) const;
virtual Bool_t InheritsFrom(const TClass *cl) const;
virtual void Inspect() const;
virtual Bool_t IsFolder() const;
virtual Bool_t IsEqual(const TObject *obj) const;
virtual Bool_t IsSortable() const { return kFALSE; }
Bool_t IsOnHeap() const { return TestBit(kIsOnHeap); }
Bool_t IsZombie() const { return TestBit(kZombie); }
virtual Bool_t Notify();
virtual void ls(Option_t *option="") const;
virtual void Paint(Option_t *option="");
virtual void Pop();
virtual void Print(Option_t *option="") const;
virtual Int_t Read(const char *name);
virtual void RecursiveRemove(TObject *obj);
virtual void SaveAs(const char *filename="",Option_t *option="") const;
virtual void SavePrimitive(ostream &out, Option_t *option = "");
virtual void SetDrawOption(Option_t *option="");
virtual void SetUniqueID(UInt_t uid);
virtual void UseCurrentStyle();
virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0);
virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0) const;
void *operator new(size_t sz) { return TStorage::ObjectAlloc(sz); }
void *operator new[](size_t sz) { return TStorage::ObjectAlloc(sz); }
void *operator new(size_t sz, void *vp) { return TStorage::ObjectAlloc(sz, vp); }
void *operator new[](size_t sz, void *vp) { return TStorage::ObjectAlloc(sz, vp); }
void operator delete(void *ptr);
void operator delete[](void *ptr);
#ifdef R__PLACEMENTDELETE
void operator delete(void *ptr, void *vp);
void operator delete[](void *ptr, void *vp);
#endif
void SetBit(UInt_t f, Bool_t set);
void SetBit(UInt_t f) { fBits |= f & kBitMask; }
void ResetBit(UInt_t f) { fBits &= ~(f & kBitMask); }
Bool_t TestBit(UInt_t f) const { return (Bool_t) ((fBits & f) != 0); }
Int_t TestBits(UInt_t f) const { return (Int_t) (fBits & f); }
void InvertBit(UInt_t f) { fBits ^= f & kBitMask; }
virtual void Info(const char *method, const char *msgfmt, ...) const
#if defined(__GNUC__) && !defined(__CINT__)
__attribute__((format(printf, 3, 4)))
#endif
;
virtual void Warning(const char *method, const char *msgfmt, ...) const
#if defined(__GNUC__) && !defined(__CINT__)
__attribute__((format(printf, 3, 4)))
#endif
;
virtual void Error(const char *method, const char *msgfmt, ...) const
#if defined(__GNUC__) && !defined(__CINT__)
__attribute__((format(printf, 3, 4)))
#endif
;
virtual void SysError(const char *method, const char *msgfmt, ...) const
#if defined(__GNUC__) && !defined(__CINT__)
__attribute__((format(printf, 3, 4)))
#endif
;
virtual void Fatal(const char *method, const char *msgfmt, ...) const
#if defined(__GNUC__) && !defined(__CINT__)
__attribute__((format(printf, 3, 4)))
#endif
;
void AbstractMethod(const char *method) const;
void MayNotUse(const char *method) const;
static Long_t GetDtorOnly();
static void SetDtorOnly(void *obj);
static Bool_t GetObjectStat();
static void SetObjectStat(Bool_t stat);
ClassDef(TObject,1)
};
enum EObjBits {
kCanDelete = TObject::kCanDelete,
kMustCleanup = TObject::kMustCleanup,
kObjInCanvas = TObject::kObjInCanvas,
kIsReferenced = TObject::kIsReferenced,
kHasUUID = TObject::kHasUUID,
kCannotPick = TObject::kCannotPick,
kNoContextMenu = TObject::kNoContextMenu,
kInvalidObject = TObject::kInvalidObject
};
#ifndef ROOT_TBuffer
#include "TBuffer.h"
#endif
#endif