#ifndef ROOT_TROOT
#define ROOT_TROOT
#ifndef ROOT_TDirectory
#include "TDirectory.h"
#endif
#ifndef ROOT_TList
#include "TList.h"
#endif
class TClass;
class TCanvas;
class TColor;
class TDataType;
class TFile;
class TStyle;
class TVirtualPad;
class TApplication;
class TInterpreter;
class TBrowser;
class TGlobal;
class TFunction;
class TFolder;
class TPluginManager;
class TProcessUUID;
class TClassGenerator;
class TVirtualMutex;
R__EXTERN TVirtualMutex *gROOTMutex;
class TROOT : public TDirectory {
friend class TCint;
private:
Int_t fLineIsProcessing;
static Int_t fgDirLevel;
static Bool_t fgRootInit;
static Bool_t fgMemCheck;
TROOT(const TROOT&);
TROOT& operator=(const TROOT&);
protected:
TString fConfigOptions;
TString fVersion;
Int_t fVersionInt;
Int_t fVersionCode;
Int_t fVersionDate;
Int_t fVersionTime;
Int_t fBuiltDate;
Int_t fBuiltTime;
Int_t fSvnRevision;
TString fSvnBranch;
TString fSvnDate;
Int_t fTimer;
TApplication *fApplication;
TInterpreter *fInterpreter;
Bool_t fBatch;
Bool_t fEditHistograms;
Bool_t fFromPopUp;
Bool_t fMustClean;
Bool_t fReadingObject;
Bool_t fForceStyle;
Bool_t fInterrupt;
Bool_t fEscape;
Bool_t fExecutingMacro;
Int_t fEditorMode;
const TObject *fPrimitive;
TVirtualPad *fSelectPad;
TCollection *fClasses;
TCollection *fTypes;
TCollection *fGlobals;
TCollection *fGlobalFunctions;
TSeqCollection *fFiles;
TSeqCollection *fMappedFiles;
TSeqCollection *fSockets;
TSeqCollection *fCanvases;
TSeqCollection *fStyles;
TCollection *fFunctions;
TSeqCollection *fTasks;
TSeqCollection *fColors;
TSeqCollection *fGeometries;
TSeqCollection *fBrowsers;
TSeqCollection *fSpecials;
TSeqCollection *fCleanups;
TSeqCollection *fMessageHandlers;
TSeqCollection *fStreamerInfo;
TCollection *fClassGenerators;
TSeqCollection *fSecContexts;
TSeqCollection *fProofs;
TSeqCollection *fClipboard;
TSeqCollection *fDataSets;
TProcessUUID *fUUIDs;
TFolder *fRootFolder;
TList *fBrowsables;
TPluginManager *fPluginManager;
TString fCutClassName;
TString fDefCanvasName;
TROOT();
void InitSystem();
void InitThreads();
void ReadSvnInfo();
void *operator new(size_t l) { return TObject::operator new(l); }
public:
TROOT(const char *name, const char *title, VoidFuncPtr_t *initfunc = 0);
virtual ~TROOT();
void AddClass(TClass *cl);
void AddClassGenerator(TClassGenerator *gen);
void Browse(TBrowser *b);
Bool_t ClassSaved(TClass *cl);
virtual TObject *FindObject(const char *name) const;
virtual TObject *FindObject(const TObject *obj) const;
virtual TObject *FindObjectAny(const char *name) const;
TObject *FindSpecialObject(const char *name, void *&where);
const char *FindObjectClassName(const char *name) const;
const char *FindObjectPathName(const TObject *obj) const;
TClass *FindSTLClass(const char *name, Bool_t load) const;
void ForceStyle(Bool_t force = kTRUE) { fForceStyle = force; }
Bool_t FromPopUp() const { return fFromPopUp; }
TPluginManager *GetPluginManager() const { return fPluginManager; }
TApplication *GetApplication() const { return fApplication; }
TInterpreter *GetInterpreter() const { return fInterpreter; }
TClass *GetClass(const char *name, Bool_t load = kTRUE) const;
TClass *GetClass(const type_info &typeinfo, Bool_t load = kTRUE) const;
TColor *GetColor(Int_t color) const;
const char *GetConfigOptions() const { return fConfigOptions; }
const char *GetCutClassName() const { return fCutClassName; }
const char *GetDefCanvasName() const { return fDefCanvasName; }
Bool_t GetEditHistograms() const { return fEditHistograms; }
Int_t GetEditorMode() const { return fEditorMode; }
Bool_t GetForceStyle() const { return fForceStyle; }
Int_t GetBuiltDate() const { return fBuiltDate; }
Int_t GetBuiltTime() const { return fBuiltTime; }
Int_t GetSvnRevision() const { return fSvnRevision; }
const char *GetSvnBranch() const { return fSvnBranch; }
const char *GetSvnDate();
Int_t GetVersionDate() const { return fVersionDate; }
Int_t GetVersionTime() const { return fVersionTime; }
Int_t GetVersionInt() const { return fVersionInt; }
Int_t GetVersionCode() const { return fVersionCode; }
const char *GetVersion() const { return fVersion; }
TCollection *GetListOfClasses() const { return fClasses; }
TSeqCollection *GetListOfColors() const { return fColors; }
TCollection *GetListOfTypes(Bool_t load = kFALSE);
TCollection *GetListOfGlobals(Bool_t load = kFALSE);
TCollection *GetListOfGlobalFunctions(Bool_t load = kFALSE);
TSeqCollection *GetListOfFiles() const { return fFiles; }
TSeqCollection *GetListOfMappedFiles() const { return fMappedFiles; }
TSeqCollection *GetListOfSockets() const { return fSockets; }
TSeqCollection *GetListOfCanvases() const { return fCanvases; }
TSeqCollection *GetListOfStyles() const { return fStyles; }
TCollection *GetListOfFunctions() const { return fFunctions; }
TSeqCollection *GetListOfGeometries() const { return fGeometries; }
TSeqCollection *GetListOfBrowsers() const { return fBrowsers; }
TSeqCollection *GetListOfSpecials() const { return fSpecials; }
TSeqCollection *GetListOfTasks() const { return fTasks; }
TSeqCollection *GetListOfCleanups() const { return fCleanups; }
TSeqCollection *GetListOfStreamerInfo() const { return fStreamerInfo; }
TSeqCollection *GetListOfMessageHandlers() const { return fMessageHandlers; }
TCollection *GetListOfClassGenerators() const { return fClassGenerators; }
TSeqCollection *GetListOfSecContexts() const { return fSecContexts; }
TSeqCollection *GetListOfProofs() const { return fProofs; }
TSeqCollection *GetClipboard() const { return fClipboard; }
TSeqCollection *GetListOfDataSets() const { return fDataSets; }
TList *GetListOfBrowsables() const { return fBrowsables; }
TDataType *GetType(const char *name, Bool_t load = kFALSE) const;
TFile *GetFile() const { if (gDirectory != this) return gDirectory->GetFile(); else return 0;}
TFile *GetFile(const char *name) const;
TStyle *GetStyle(const char *name) const;
TObject *GetFunction(const char *name) const;
TGlobal *GetGlobal(const char *name, Bool_t load = kFALSE) const;
TGlobal *GetGlobal(const TObject *obj, Bool_t load = kFALSE) const;
TFunction *GetGlobalFunction(const char *name, const char *params = 0, Bool_t load = kFALSE);
TFunction *GetGlobalFunctionWithPrototype(const char *name, const char *proto = 0, Bool_t load = kFALSE);
TObject *GetGeometry(const char *name) const;
const TObject *GetSelectedPrimitive() const { return fPrimitive; }
TVirtualPad *GetSelectedPad() const { return fSelectPad; }
Int_t GetNclasses() const { return fClasses->GetSize(); }
Int_t GetNtypes() const { return fTypes->GetSize(); }
TFolder *GetRootFolder() const { return fRootFolder; }
TProcessUUID *GetUUIDs() const { return fUUIDs; }
void Idle(UInt_t idleTimeInSec, const char *command = 0);
Int_t IgnoreInclude(const char *fname, const char *expandedfname);
Bool_t IsBatch() const { return fBatch; }
Bool_t IsExecutingMacro() const { return fExecutingMacro; }
Bool_t IsFolder() const { return kTRUE; }
Bool_t IsInterrupted() const { return fInterrupt; }
Bool_t IsEscaped() const { return fEscape; }
Bool_t IsLineProcessing() const { return fLineIsProcessing ? kTRUE : kFALSE; }
Bool_t IsProofServ() const { return fName == "proofserv" ? kTRUE : kFALSE; }
void ls(Option_t *option = "") const;
Int_t LoadClass(const char *classname, const char *libname, Bool_t check = kFALSE);
TClass *LoadClass(const char *name) const;
Int_t LoadMacro(const char *filename, Int_t *error = 0, Bool_t check = kFALSE);
Long_t Macro(const char *filename, Int_t *error = 0, Bool_t padUpdate = kTRUE);
TCanvas *MakeDefCanvas() const;
void Message(Int_t id, const TObject *obj);
Bool_t MustClean() const { return fMustClean; }
Long_t ProcessLine(const char *line, Int_t *error = 0);
Long_t ProcessLineSync(const char *line, Int_t *error = 0);
Long_t ProcessLineFast(const char *line, Int_t *error = 0);
Bool_t ReadingObject() const { return fReadingObject; }
void RefreshBrowsers();
void RemoveClass(TClass *);
void Reset(Option_t *option="");
void SaveContext();
void SetApplication(TApplication *app) { fApplication = app; }
void SetBatch(Bool_t batch = kTRUE) { fBatch = batch; }
void SetCutClassName(const char *name = "TCutG");
void SetDefCanvasName(const char *name = "c1") { fDefCanvasName = name; }
void SetEditHistograms(Bool_t flag = kTRUE) { fEditHistograms = flag; }
void SetEditorMode(const char *mode = "");
void SetExecutingMacro(Bool_t flag = kTRUE) { fExecutingMacro = flag; }
void SetFromPopUp(Bool_t flag = kTRUE) { fFromPopUp = flag; }
void SetInterrupt(Bool_t flag = kTRUE) { fInterrupt = flag; }
void SetEscape(Bool_t flag = kTRUE) { fEscape = flag; }
void SetLineIsProcessing() { fLineIsProcessing++; }
void SetLineHasBeenProcessed() { if (fLineIsProcessing) fLineIsProcessing--; }
void SetReadingObject(Bool_t flag = kTRUE) { fReadingObject = flag; }
void SetMustClean(Bool_t flag = kTRUE) { fMustClean=flag; }
void SetSelectedPrimitive(const TObject *obj) { fPrimitive = obj; }
void SetSelectedPad(TVirtualPad *pad) { fSelectPad = pad; }
void SetStyle(const char *stylename = "Default");
void Time(Int_t casetime=1) { fTimer = casetime; }
Int_t Timer() const { return fTimer; }
static Int_t DecreaseDirLevel();
static Int_t GetDirLevel();
static const char *GetMacroPath();
static void SetMacroPath(const char *newpath);
static Int_t IncreaseDirLevel();
static void IndentLevel();
static Bool_t Initialized();
static Bool_t MemCheck();
static void SetDirLevel(Int_t level = 0);
static Int_t ConvertVersionCode2Int(Int_t code);
static Int_t ConvertVersionInt2Code(Int_t v);
static Int_t RootVersionCode();
ClassDef(TROOT,0)
};
R__EXTERN TROOT *gROOT;
namespace ROOT {
TROOT *GetROOT();
}
#endif