ROOT  6.06/09
Reference Guide
Public Member Functions | Protected Attributes | Static Protected Attributes | List of all members
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;
}
base_tasks.png

Definition at line 34 of file TTask.h.

Public Member Functions

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

Protected Attributes

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

Static Protected Attributes

static TTaskfgBeginTask = 0
 
static TTaskfgBreakPoint = 0
 

Additional Inherited Members

- Public Types inherited from TObject
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) }
 
- Static Public Member Functions inherited from TObject
static Long_t GetDtorOnly ()
 Return destructor only flag. More...
 
static void SetDtorOnly (void *obj)
 Set destructor only flag. More...
 
static Bool_t GetObjectStat ()
 Get status of object stat flag. More...
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable. More...
 
- Protected Member Functions inherited from TObject
void MakeZombie ()
 
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected). More...
 

#include <TTask.h>

+ Inheritance diagram for TTask:
+ Collaboration diagram for TTask:

Constructor & Destructor Documentation

TTask::TTask ( )

Referenced by operator=(), and TTask().

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

Standard constructor.

Definition at line 105 of file TTask.cxx.

TTask::~TTask ( )
virtual

Delete a task and its subtasks.

Definition at line 158 of file TTask.cxx.

TTask::TTask ( const TTask task)

Copy constructor.

Definition at line 140 of file TTask.cxx.

Member Function Documentation

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 171 of file TTask.cxx.

virtual void TTask::Add ( TTask task)
inlinevirtual

Definition at line 57 of file TTask.h.

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 190 of file TTask.cxx.

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 200 of file TTask.cxx.

Referenced by Abort(), CleanTasks(), Continue(), and ExecuteTask().

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 219 of file TTask.cxx.

Referenced by CleanTasks().

void TTask::Continue ( )
virtual

Resume execution at the current break point.

Definition at line 226 of file TTask.cxx.

void TTask::Exec ( Option_t option)
virtual

Dummy Execute.

This function must be redefined in the derived classes.

Definition at line 246 of file TTask.cxx.

Referenced by ExecuteTask(), and ExecuteTasks().

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 259 of file TTask.cxx.

void TTask::ExecuteTasks ( Option_t option)
virtual

Execute all the subtasks of a task.

Definition at line 294 of file TTask.cxx.

Referenced by Continue(), ExecuteTask(), and ExecuteTasks().

Int_t TTask::GetBreakin ( ) const
inline

Definition at line 65 of file TTask.h.

Int_t TTask::GetBreakout ( ) const
inline

Definition at line 66 of file TTask.h.

TList* TTask::GetListOfTasks ( ) const
inline

Definition at line 73 of file TTask.h.

Bool_t TTask::IsActive ( ) const
inline

Definition at line 67 of file TTask.h.

Referenced by ExecuteTask(), and ExecuteTasks().

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 68 of file TTask.h.

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 334 of file TTask.cxx.

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

Assignment operator.

Definition at line 118 of file TTask.cxx.

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

Definition at line 70 of file TTask.h.

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

Definition at line 71 of file TTask.h.

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

Definition at line 72 of file TTask.h.

Member Data Documentation

Bool_t TTask::fActive
protected

Definition at line 42 of file TTask.h.

Referenced by IsActive(), operator=(), and TTask().

Int_t TTask::fBreakin
protected

Definition at line 39 of file TTask.h.

Referenced by CleanTasks(), ExecuteTask(), ExecuteTasks(), GetBreakin(), operator=(), and TTask().

Int_t TTask::fBreakout
protected

Definition at line 40 of file TTask.h.

Referenced by CleanTasks(), ExecuteTask(), ExecuteTasks(), GetBreakout(), operator=(), and TTask().

TTask * TTask::fgBeginTask = 0
staticprotected

Definition at line 44 of file TTask.h.

Referenced by Abort(), Continue(), and ExecuteTask().

TTask * TTask::fgBreakPoint = 0
staticprotected

Definition at line 45 of file TTask.h.

Referenced by Abort(), Continue(), ExecuteTask(), and ExecuteTasks().

Bool_t TTask::fHasExecuted
protected

Definition at line 41 of file TTask.h.

Referenced by CleanTasks(), ExecuteTask(), ExecuteTasks(), operator=(), and TTask().

TString TTask::fOption
protected

Definition at line 38 of file TTask.h.

Referenced by Continue(), ExecuteTask(), operator=(), and TTask().

TList* TTask::fTasks
protected

Definition at line 37 of file TTask.h.

Referenced by Browse(), CleanTasks(), ExecuteTasks(), GetListOfTasks(), ls(), operator=(), TTask(), and ~TTask().


The documentation for this class was generated from the following files: