logging class extended and macros for easy log messages introduced, code changed...
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTSystem.h
1 // @(#) $Id$
2
3 #ifndef ALIHLTSYSTEM_H
4 #define ALIHLTSYSTEM_H
5 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
6  * See cxx source for full Copyright notice                               */
7
8 /* AliHLTComponentHandler
9    global HLT module management 
10  */
11
12
13 #include "AliL3RootTypes.h"
14 #include "AliHLTLogging.h"
15 #include <TList.h>
16
17 class AliHLTComponentHandler;
18 class AliHLTConfiguration;
19 class AliHLTConfigurationHandler;
20 class AliHLTTask;
21
22 class AliHLTSystem : public AliHLTLogging {
23  public:
24   AliHLTSystem();
25   virtual ~AliHLTSystem();
26
27   AliHLTComponentHandler* fpComponentHandler;
28   AliHLTConfigurationHandler* fpConfigurationHandler;
29
30   /* add a configuration to the end of the list
31    */
32   int AddConfiguration(AliHLTConfiguration* pConf);
33
34   /* add a configuration to the list after the specified configuration
35    */
36   int InsertConfiguration(AliHLTConfiguration* pConf, AliHLTConfiguration* pPrec);
37
38   /* remove a configuration from the list
39    */
40   int DeleteConfiguration(AliHLTConfiguration* pConf);
41
42   /* build a task list from the configuration list
43    */
44   int BuildTaskList(AliHLTConfiguration* pConf);
45
46   int CleanTaskList();
47
48   int InsertTask(AliHLTTask* pTask);
49
50   AliHLTTask* FindTask(const char* id);
51
52   void PrintTaskList();
53
54   /* run the task list
55    */
56   int Run();
57
58  protected:
59   int ProcessTask();
60   int StartEvent();
61   int ProcessEvent();
62   int StopEvent();
63  
64  private:
65   TList fConfList;
66   int fbListChanged;
67
68   TList fTaskList;
69
70  private:
71   ClassDef(AliHLTSystem, 0);
72 };
73 #endif
74