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

Legacy Code

TTask is a legacy interface: there will be no bug fixes nor new developments. Therefore it is not recommended to use it in new long-term production code. But, depending on the context, using TTask might still be a valid solution.

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:406
Using a TBrowser one can browse all ROOT objects.
Definition TBrowser.h:37
<div class="legacybox"><h2>Legacy Code</h2> TTask is a legacy interface: there will be no bug fixes n...
Definition TTask.h:35
TTask()
Default constructor invoked when reading a TTask object from a file.
Definition TTask.cxx:98
virtual void Add(TTask *task)
Add TTask to this.
Definition TTask.cxx:176

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.
 
void Browse (TBrowser *b) override
 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.
 
void Clear (Option_t *option="") override
 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
 
TClassIsA () const override
 
Bool_t IsActive () const
 
Bool_t IsFolder () const override
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).
 
void ls (Option_t *option="*") const override
 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)
 
void Streamer (TBuffer &) override
 Stream an object of class TObject.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
- 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.
 
TObjectClone (const char *newname="") const override
 Make a clone of an object using the Streamer facility.
 
Int_t Compare (const TObject *obj) const override
 Compare two TNamed objects.
 
void Copy (TObject &named) const override
 Copy this to obj.
 
virtual void FillBuffer (char *&buffer)
 Encode TNamed into output buffer.
 
const char * GetName () const override
 Returns name of object.
 
const char * GetTitle () const override
 Returns title of object.
 
ULong_t Hash () const override
 Return hash value for this object.
 
Bool_t IsSortable () const override
 
TNamedoperator= (const TNamed &rhs)
 TNamed assignment operator.
 
void Print (Option_t *option="") const override
 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.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
- 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 with: gROOT->SetSelectedPad(c1).
 
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=nullptr)
 Execute method on this object with the given parameter string, e.g.
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr)
 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 (the base implementation is no-op).
 
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 [].
 
void * operator new (size_t sz)
 
void * operator new (size_t sz, void *vp)
 
void * operator new[] (size_t sz)
 
void * operator 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.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
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=nullptr, Int_t option=0, Int_t bufsize=0)
 Write this object to the current directory.
 
virtual Int_t Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) const
 Write this object to the current directory.
 

Static Public Member Functions

static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
- Static Public Member Functions inherited from TNamed
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
- Static Public Member Functions inherited from TObject
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
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 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 = (1ULL << ( 0 )) , kOverwrite = (1ULL << ( 1 )) , kWriteDelete = (1ULL << ( 2 )) }
 
enum  EDeprecatedStatusBits { kObjInCanvas = (1ULL << ( 3 )) }
 
enum  EStatusBits {
  kCanDelete = (1ULL << ( 0 )) , kMustCleanup = (1ULL << ( 3 )) , kIsReferenced = (1ULL << ( 4 )) , kHasUUID = (1ULL << ( 5 )) ,
  kCannotPick = (1ULL << ( 6 )) , kNoContextMenu = (1ULL << ( 8 )) , kInvalidObject = (1ULL << ( 13 ))
}
 
- Protected Types inherited from TObject
enum  { kOnlyPrepStep = (1ULL << ( 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 98 of file TTask.cxx.

◆ TTask() [2/3]

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

Standard constructor.

Definition at line 110 of file TTask.cxx.

◆ ~TTask()

TTask::~TTask ( )
virtual

Delete a task and its subtasks.

Definition at line 168 of file TTask.cxx.

◆ TTask() [3/3]

TTask::TTask ( const TTask task)

Copy constructor.

Definition at line 150 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 192 of file TTask.cxx.

◆ Add()

void TTask::Add ( TTask task)
virtual

Add TTask to this.

Definition at line 176 of file TTask.cxx.

◆ Browse()

void TTask::Browse ( TBrowser b)
overridevirtual

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

◆ Class()

static TClass * TTask::Class ( )
static
Returns
TClass describing this class

◆ Class_Name()

static const char * TTask::Class_Name ( )
static
Returns
Name of this class

◆ Class_Version()

static constexpr Version_t TTask::Class_Version ( )
inlinestaticconstexpr
Returns
Version of this class

Definition at line 76 of file TTask.h.

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

◆ Clear()

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

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

◆ Continue()

void TTask::Continue ( )
virtual

Resume execution at the current break point.

Definition at line 247 of file TTask.cxx.

◆ DeclFileName()

static const char * TTask::DeclFileName ( )
inlinestatic
Returns
Name of the file containing the class declaration

Definition at line 76 of file TTask.h.

◆ Exec()

void TTask::Exec ( Option_t option)
virtual

Dummy Execute.

This function must be redefined in the derived classes.

Definition at line 267 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 280 of file TTask.cxx.

◆ ExecuteTasks()

void TTask::ExecuteTasks ( Option_t option)
virtual

Execute all the subtasks of a task.

Definition at line 315 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.

◆ IsA()

TClass * TTask::IsA ( ) const
inlineoverridevirtual
Returns
TClass describing current object

Reimplemented from TNamed.

Definition at line 76 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
inlineoverridevirtual

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
overridevirtual

List the tree of tasks.

Indentation is used to identify the task tree.

Reimplemented from TNamed.

Definition at line 359 of file TTask.cxx.

◆ operator=()

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

Assignment operator.

Definition at line 124 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.

◆ Streamer()

void TTask::Streamer ( TBuffer R__b)
overridevirtual

Stream an object of class TObject.

Reimplemented from TNamed.

◆ StreamerNVirtual()

void TTask::StreamerNVirtual ( TBuffer ClassDef_StreamerNVirtual_b)
inline

Definition at line 76 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.

Libraries for TTask:

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