Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TTask Class Reference

TTask is a base class that can be used to build a complex tree of Tasks.

Each TTask derived class may contain other TTasks that can be executed recursively, such that a complex program can be dynamically built and executed by invoking the services of the top level Task or one of its subtasks.

Use the TTask::Add function to add a subtask to an existing TTask. To execute a TTask, one calls the ExecuteTask function. ExecuteTask will call recursively:

If the top level task (see example below) is added to the list of Root browsable objects, the tree of tasks can be visualized by the Root browser. The browser can be used to start a task, set break points at the beginning of a task or when the task has completed. At a breakpoint, data structures generated by the execution up this point may be inspected asynchronously and then the execution can be resumed by selecting the "Continue" function of a task.

A Task may be active or inactive (controlled by TTask::SetActive). When a task is not active, its sub tasks are not executed.

A TTask tree may be made persistent, saving the status of all the tasks.

The Root browser's picture below has been generated by executing the following script:

{
TTask *aliroot = new TTask("aliroot","ALICE reconstruction main task");
TTask *geominit = new TTask("geomInit","Initialize ALICE geometry");
TTask *matinit = new TTask("matInit","Initialize ALICE materials");
TTask *physinit = new TTask("physInit","Initialize Physics processes");
TTask *tracker = new TTask("tracker","Track reconstruction manager");
TTask *tpcrec = new TTask("tpcrec","TPC reconstruction");
TTask *itsrec = new TTask("itsrec","ITS reconstruction");
TTask *muonrec = new TTask("muonRec","Muon Reconstruction");
TTask *phosrec = new TTask("phosRec","Phos Reconstruction");
TTask *richrec = new TTask("richRec","Rich Reconstruction");
TTask *trdrec = new TTask("trdRec","TRD Reconstruction");
TTask *globrec = new TTask("globRec","Global Track Reconstruction");
TTask *pstats = new TTask("printStats","Print Run Statistics");
TTask *run = new TTask("run","Process one run");
TTask *event = new TTask("event","Process one event");
aliroot->Add(geominit);
aliroot->Add(matinit);
aliroot->Add(physinit);
aliroot->Add(run);
run->Add(event);
event->Add(tracker);
event->Add(muonrec);
event->Add(phosrec);
event->Add(richrec);
event->Add(trdrec);
event->Add(globrec);
tracker->Add(tpcrec);
tracker->Add(itsrec);
run->Add(pstats);
gROOT->GetListOfBrowsables()->Add(aliroot,"aliroot");
new TBrowser;
}
#define gROOT
Definition TROOT.h:404
Using a TBrowser one can browse all ROOT objects.
Definition TBrowser.h:37
TTask is a base class that can be used to build a complex tree of Tasks.
Definition TTask.h:35
TTask()
Default constructor invoked when reading a TTask object from a file.
Definition TTask.cxx:96
virtual void Add(TTask *task)
Add TTask to this.
Definition TTask.cxx:172

Definition at line 35 of file TTask.h.

Public Member Functions

 TTask ()
 Default constructor invoked when reading a TTask object from a file.
 
 TTask (const char *name, const char *title)
 Standard constructor.
 
 TTask (const TTask &task)
 Copy constructor.
 
virtual ~TTask ()
 Delete a task and its subtasks.
 
virtual void Abort ()
 Abort current tree of tasks.
 
virtual void Add (TTask *task)
 Add TTask to this.
 
virtual void Browse (TBrowser *b)
 Browse the list of tasks.
 
virtual void CleanTasks ()
 Reset tasks state: breakpoints and execute flags also invokes the Clear function of each task to clear all data structures created by a previous execution of a task.
 
virtual void Clear (Option_t *option="")
 Recursively call the Clear function of this task and its subtasks.
 
virtual void Continue ()
 Resume execution at the current break point.
 
virtual void Exec (Option_t *option)
 Dummy Execute.
 
virtual void ExecuteTask (Option_t *option="0")
 Execute main task and its subtasks.
 
virtual void ExecuteTasks (Option_t *option)
 Execute all the subtasks of a task.
 
Int_t GetBreakin () const
 
Int_t GetBreakout () const
 
TListGetListOfTasks () const
 
Bool_t IsActive () const
 
Bool_t IsFolder () const
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).
 
virtual void ls (Option_t *option="*") const
 List the tree of tasks.
 
TTaskoperator= (const TTask &tt)
 Assignment operator.
 
void SetActive (Bool_t active=kTRUE)
 
void SetBreakin (Int_t breakin=1)
 
void SetBreakout (Int_t breakout=1)
 
- Public Member Functions inherited from TNamed
 TNamed ()
 
 TNamed (const char *name, const char *title)
 
 TNamed (const TNamed &named)
 TNamed copy ctor.
 
 TNamed (const TString &name, const TString &title)
 
virtual ~TNamed ()
 TNamed destructor.
 
virtual TObjectClone (const char *newname="") const
 Make a clone of an object using the Streamer facility.
 
virtual Int_t Compare (const TObject *obj) const
 Compare two TNamed objects.
 
virtual void Copy (TObject &named) const
 Copy this to obj.
 
virtual void FillBuffer (char *&buffer)
 Encode TNamed into output buffer.
 
virtual const char * GetName () const
 Returns name of object.
 
virtual const char * GetTitle () const
 Returns title of object.
 
virtual ULong_t Hash () const
 Return hash value for this object.
 
virtual Bool_t IsSortable () const
 
TNamedoperator= (const TNamed &rhs)
 TNamed assignment operator.
 
virtual void Print (Option_t *option="") const
 Print TNamed name and title.
 
virtual void SetName (const char *name)
 Set the name of the TNamed.
 
virtual void SetNameTitle (const char *name, const char *title)
 Set all the TNamed parameters (name and title).
 
virtual void SetTitle (const char *title="")
 Set the title of the TNamed.
 
virtual Int_t Sizeof () const
 Return size of the TNamed part of the TObject.
 
- Public Member Functions inherited from TObject
 TObject ()
 TObject constructor.
 
 TObject (const TObject &object)
 TObject copy ctor.
 
virtual ~TObject ()
 TObject destructor.
 
void AbstractMethod (const char *method) const
 Use this method to implement an "abstract" method that you don't want to leave purely abstract.
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad.
 
ULong_t CheckedHash ()
 Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object.
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs.
 
virtual void Delete (Option_t *option="")
 Delete this object.
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Computes distance from point (px,py) to the object.
 
virtual void Draw (Option_t *option="")
 Default Draw method for all objects.
 
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs.
 
virtual TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current selected pad for instance with: gROOT->SetSelectedPad(gPad).
 
virtual void Dump () const
 Dump contents of object on stdout.
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message.
 
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 void Execute (TMethod *method, TObjArray *params, Int_t *error=0)
 Execute method on this object with parameters stored in the TObjArray.
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 Execute action corresponding to an event at (px,py).
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message.
 
virtual TObjectFindObject (const char *name) const
 Must be redefined in derived classes.
 
virtual TObjectFindObject (const TObject *obj) const
 Must be redefined in derived classes.
 
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object.
 
virtual const char * GetIconName () const
 Returns mime type name of object.
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py).
 
virtual Option_tGetOption () const
 
virtual UInt_t GetUniqueID () const
 Return the unique object id.
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out.
 
Bool_t HasInconsistentHash () const
 Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e.
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message.
 
virtual Bool_t InheritsFrom (const char *classname) const
 Returns kTRUE if object inherits from class "classname".
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 Returns kTRUE if object inherits from TClass cl.
 
virtual void Inspect () const
 Dump contents of this object in a graphics canvas.
 
void InvertBit (UInt_t f)
 
Bool_t IsDestructed () const
 IsDestructed.
 
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory).
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
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 class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary).
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification.
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete.
 
void operator delete (void *ptr)
 Operator delete.
 
void operator delete[] (void *ptr)
 Operator delete [].
 
voidoperator new (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz)
 
voidoperator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator.
 
virtual void Paint (Option_t *option="")
 This method must be overridden if a class wants to paint itself.
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list.
 
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory.
 
virtual void RecursiveRemove (TObject *obj)
 Recursively remove this object from a list.
 
void ResetBit (UInt_t f)
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 Save this object in the file specified by filename.
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 Save a primitive as a C++ statement(s) on output stream "out".
 
void SetBit (UInt_t f)
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f.
 
virtual void SetDrawOption (Option_t *option="")
 Set drawing option for object.
 
virtual void SetUniqueID (UInt_t uid)
 Set the unique object id.
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message.
 
R__ALWAYS_INLINE Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
virtual void UseCurrentStyle ()
 Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked.
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning 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 Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const
 Write this object to the current directory.
 

Protected Attributes

Bool_t fActive
 
Int_t fBreakin
 
Int_t fBreakout
 
Bool_t fHasExecuted
 
TString fOption
 
TListfTasks
 
- Protected Attributes inherited from TNamed
TString fName
 
TString fTitle
 

Static Protected Attributes

static TTaskfgBeginTask = nullptr
 
static TTaskfgBreakPoint = nullptr
 

Additional Inherited Members

- Public Types inherited from TObject
enum  {
  kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 ,
  kBitMask = 0x00ffffff
}
 
enum  { kSingleKey = BIT(0) , kOverwrite = BIT(1) , kWriteDelete = BIT(2) }
 
enum  EDeprecatedStatusBits { kObjInCanvas = BIT(3) }
 
enum  EStatusBits {
  kCanDelete = BIT(0) , kMustCleanup = BIT(3) , kIsReferenced = BIT(4) , kHasUUID = BIT(5) ,
  kCannotPick = BIT(6) , kNoContextMenu = BIT(8) , kInvalidObject = BIT(13)
}
 
- Static Public Member Functions inherited from TObject
static Longptr_t GetDtorOnly ()
 Return destructor only flag.
 
static Bool_t GetObjectStat ()
 Get status of object stat flag.
 
static void SetDtorOnly (void *obj)
 Set destructor only flag.
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable.
 
- Protected Types inherited from TObject
enum  { kOnlyPrepStep = BIT(3) }
 
- Protected Member Functions inherited from TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected).
 
void MakeZombie ()
 

#include <TTask.h>

Inheritance diagram for TTask:
[legend]

Constructor & Destructor Documentation

◆ TTask() [1/3]

TTask::TTask ( )

Default constructor invoked when reading a TTask object from a file.

Definition at line 96 of file TTask.cxx.

◆ TTask() [2/3]

TTask::TTask ( const char *  name,
const char *  title 
)

Standard constructor.

Definition at line 108 of file TTask.cxx.

◆ ~TTask()

TTask::~TTask ( )
virtual

Delete a task and its subtasks.

Definition at line 161 of file TTask.cxx.

◆ TTask() [3/3]

TTask::TTask ( const TTask task)

Copy constructor.

Definition at line 143 of file TTask.cxx.

Member Function Documentation

◆ Abort()

void TTask::Abort ( )
virtual

Abort current tree of tasks.

After this call, the tree of tasks is ready to be executed again. The application must take care of cleaning data structures created by previous executions.

Definition at line 184 of file TTask.cxx.

◆ Add()

void TTask::Add ( TTask task)
virtual

Add TTask to this.

Definition at line 172 of file TTask.cxx.

◆ Browse()

void TTask::Browse ( TBrowser b)
virtual

Browse the list of tasks.

It is recommended to add the top level task to the list of ROOT browsables by:

gROOT->GetListOfBrowsables()->Add(myTopLevelTask)

Reimplemented from TObject.

Definition at line 203 of file TTask.cxx.

◆ CleanTasks()

void TTask::CleanTasks ( )
virtual

Reset tasks state: breakpoints and execute flags also invokes the Clear function of each task to clear all data structures created by a previous execution of a task.

Definition at line 213 of file TTask.cxx.

◆ Clear()

void TTask::Clear ( Option_t option = "")
virtual

Recursively call the Clear function of this task and its subtasks.

The Clear function must be implemented for each derived class to clear all data structures created by a previous execution of a task. This function is automatically called by the CleanTasks function.

Reimplemented from TNamed.

Definition at line 232 of file TTask.cxx.

◆ Continue()

void TTask::Continue ( )
virtual

Resume execution at the current break point.

Definition at line 239 of file TTask.cxx.

◆ Exec()

void TTask::Exec ( Option_t option)
virtual

Dummy Execute.

This function must be redefined in the derived classes.

Definition at line 259 of file TTask.cxx.

◆ ExecuteTask()

void TTask::ExecuteTask ( Option_t option = "0")
virtual

Execute main task and its subtasks.

When calling this function, the Exec function of the corresponding class is invoked, then the list of its subtasks is executed calling recursively all the subtasks, etc.

The option parameter may be used to select different execution steps within a task. This parameter is passed also to all the subtasks.

Definition at line 272 of file TTask.cxx.

◆ ExecuteTasks()

void TTask::ExecuteTasks ( Option_t option)
virtual

Execute all the subtasks of a task.

Definition at line 307 of file TTask.cxx.

◆ GetBreakin()

Int_t TTask::GetBreakin ( ) const
inline

Definition at line 66 of file TTask.h.

◆ GetBreakout()

Int_t TTask::GetBreakout ( ) const
inline

Definition at line 67 of file TTask.h.

◆ GetListOfTasks()

TList * TTask::GetListOfTasks ( ) const
inline

Definition at line 74 of file TTask.h.

◆ IsActive()

Bool_t TTask::IsActive ( ) const
inline

Definition at line 68 of file TTask.h.

◆ IsFolder()

Bool_t TTask::IsFolder ( ) const
inlinevirtual

Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).

Reimplemented from TObject.

Definition at line 69 of file TTask.h.

◆ ls()

void TTask::ls ( Option_t option = "*") const
virtual

List the tree of tasks.

Indentation is used to identify the task tree.

Reimplemented from TNamed.

Definition at line 347 of file TTask.cxx.

◆ operator=()

TTask & TTask::operator= ( const TTask tt)

Assignment operator.

Definition at line 121 of file TTask.cxx.

◆ SetActive()

void TTask::SetActive ( Bool_t  active = kTRUE)
inline

Definition at line 71 of file TTask.h.

◆ SetBreakin()

void TTask::SetBreakin ( Int_t  breakin = 1)
inline

Definition at line 72 of file TTask.h.

◆ SetBreakout()

void TTask::SetBreakout ( Int_t  breakout = 1)
inline

Definition at line 73 of file TTask.h.

Member Data Documentation

◆ fActive

Bool_t TTask::fActive
protected

Definition at line 43 of file TTask.h.

◆ fBreakin

Int_t TTask::fBreakin
protected

Definition at line 40 of file TTask.h.

◆ fBreakout

Int_t TTask::fBreakout
protected

Definition at line 41 of file TTask.h.

◆ fgBeginTask

TTask * TTask::fgBeginTask = nullptr
staticprotected

Definition at line 45 of file TTask.h.

◆ fgBreakPoint

TTask * TTask::fgBreakPoint = nullptr
staticprotected

Definition at line 46 of file TTask.h.

◆ fHasExecuted

Bool_t TTask::fHasExecuted
protected

Definition at line 42 of file TTask.h.

◆ fOption

TString TTask::fOption
protected

Definition at line 39 of file TTask.h.

◆ fTasks

TList* TTask::fTasks
protected

Definition at line 38 of file TTask.h.

  • core/base/inc/TTask.h
  • core/base/src/TTask.cxx