source: trunk/MagicSoft/Mars/mbase/MTaskList.h@ 8004

Last change on this file since 8004 was 7808, checked in by tbretz, 18 years ago
*** empty log message ***
File size: 3.1 KB
Line 
1#ifndef MARS_MTaskList
2#define MARS_MTaskList
3
4///////////////////////////////////////////////////////////////////////
5// //
6// MTaskList //
7// //
8// Collection of tasks to be processed in the eventloop //
9// //
10///////////////////////////////////////////////////////////////////////
11
12#ifndef MARS_MTask
13#include "MTask.h"
14#endif
15
16class MLog;
17class MParList;
18class MInputStreamID;
19
20class MTaskList : public MTask
21{
22private:
23 static const TString gsDefName; // default name
24 static const TString gsDefTitle; // default title
25
26 TList *fTasks; // Container for the ordered list of different tasks
27 TList fTasksProcess; //! Task which overload the Process function
28 MParList *fParList; //! The parameter list given in PreProcess
29
30 enum { kIsOwner = BIT(14) };
31
32 void Remove(MTask *task);
33 void StreamPrimitive(ostream &out) const;
34 Bool_t CheckAddToList(MTask *task, /*const char *tType,*/ const MTask *where=NULL) const;
35
36public:
37 MTaskList(const char *name=NULL, const char *title=NULL);
38 MTaskList(MTaskList &ts);
39
40 ~MTaskList();
41
42 void SetLogStream(MLog *log);
43 void SetDisplay(MStatusDisplay *d);
44 void SetAccelerator(Byte_t acc=kAccStandard);
45
46 Bool_t AddToListBefore(MTask *task, const MTask *where, const char *tType="All");
47 Bool_t AddToListAfter(MTask *task, const MTask *where, const char *tType="All");
48 Bool_t AddToList(MTask *task, const char *tType="All");
49 Bool_t AddToList(const TList &list, const char *tType="All");
50 Bool_t AddToListAfter(const TList &list, const MTask *where, const char *tType="All");
51 Bool_t AddToListBefore(const TList &list, const MTask *where, const char *tType="All");
52
53 void SetSerialNumber(Byte_t num);
54
55 Bool_t Replace(MTask *obj);
56 Bool_t RemoveFromList(MTask *task);
57 Bool_t RemoveFromList(const TList &list);
58
59 TObject *FindObject(const char *name) const;
60 TObject *FindObject(const TObject *obj) const;
61
62 MTask *FindTask(const char *name) const
63 {
64 return (MTask*)FindObject(name);
65 }
66 MTask *FindTask(const MTask *obj) const
67 {
68 return (MTask*)FindObject(obj);
69 }
70 MTaskList *FindTaskList(const char *task);
71 MTaskList *FindTaskList(const MTask *task);
72
73 Bool_t ReInit(MParList *pList=NULL);
74
75 Int_t PreProcess(MParList *pList);
76 Int_t Process();
77 Int_t PostProcess();
78
79 void Print(Option_t *opt = "") const;
80 void PrintStatistics(const Int_t lvl=0, Bool_t title=kFALSE, Double_t time=-1) const;
81 void SetOwner(Bool_t enable=kTRUE);
82
83 const TList *GetList() const { return fTasks; }
84
85 void GetNames(TObjArray &arr) const;
86 void SetNames(TObjArray &arr);
87
88 Int_t ReadEnv(const TEnv &env, TString prefix, Bool_t print=kFALSE);
89 Bool_t WriteEnv(TEnv &env, TString prefix, Bool_t print=kFALSE) const;
90
91 operator TIterator*() const;
92
93 ClassDef(MTaskList, 1) //collection of tasks to be performed in the eventloop
94};
95
96#endif
Note: See TracBrowser for help on using the repository browser.