]>
Commit | Line | Data |
---|---|---|
1388e0c7 | 1 | //-*- Mode: C++ -*- |
2 | // $Id$ | |
3 | #ifndef ALIHLTCOMPONENTCONFIGURATION_H | |
4 | #define ALIHLTCOMPONENTCONFIGURATION_H | |
5 | //* This file is property of and copyright by the ALICE HLT Project * | |
6 | //* ALICE Experiment at CERN, All rights reserved. * | |
7 | //* See cxx source for full Copyright notice * | |
8 | ||
9 | /// @file AliHLTComponentConfiguration.h | |
10 | /// @author Matthias Richter | |
11 | /// @date 2010-11-26 | |
12 | /// @brief HLT configuration description for a single component. | |
13 | /// @note The class is used in Offline (AliRoot) context | |
14 | ||
15 | #include "AliHLTConfiguration.h" | |
16 | ||
17 | /** | |
18 | * @class AliHLTComponentConfiguration | |
19 | * @brief Description of an HLT component configuration. | |
20 | * | |
21 | * In addition to the base class AliHLTConfiguration the additional online | |
22 | * component parameters are available in this class | |
23 | * - node name | |
24 | * - shared memory settings | |
25 | * | |
26 | * This class is only used in the HLT offline environment, see @ref alihlt_system | |
27 | * for more details. | |
28 | * | |
29 | * @ingroup alihlt_system | |
30 | */ | |
31 | class AliHLTComponentConfiguration : public AliHLTConfiguration { | |
32 | public: | |
33 | /** | |
34 | * standard constructor. The configuration is automatically registered in the | |
35 | * global configuration manager | |
36 | */ | |
37 | AliHLTComponentConfiguration(); | |
38 | /** | |
39 | * constructor. The configuration is automatically registered in the | |
40 | * global configuration manager | |
41 | * @param id unique id of the configuration | |
42 | * @param component component id | |
43 | * @param sources blank separated list of source configuration ids | |
44 | * @param arguments argument string passed to the component at initialization | |
45 | */ | |
46 | AliHLTComponentConfiguration(const char* id, const char* component, | |
47 | const char* sources, const char* arguments); | |
48 | /** copy constructor */ | |
49 | AliHLTComponentConfiguration(const AliHLTComponentConfiguration& src); | |
50 | /** assignment op */ | |
51 | AliHLTComponentConfiguration& operator=(const AliHLTComponentConfiguration& src); | |
52 | /** destructor */ | |
53 | virtual ~AliHLTComponentConfiguration(); | |
54 | ||
f84fefa5 | 55 | /** |
56 | * Return the component library. | |
57 | */ | |
58 | const char* GetComponentLibrary() const {return fLibrary.Data();} | |
59 | ||
60 | /** | |
61 | * Return the online command. | |
62 | */ | |
63 | const char* GetOnlineCommand() const {return fOnlineCommand.Data();} | |
64 | ||
65 | /** | |
66 | * Return the online nodes. | |
67 | */ | |
68 | const char* GetNodeSettings() const {return fNodeNames.Data();} | |
69 | ||
1388e0c7 | 70 | void SetComponentLibrary(const char* library) {fLibrary=library;} |
71 | ||
72 | void SetNodeNames(const char* nodes) {fNodeNames=nodes;} | |
73 | ||
74 | void AddNode(const char* node) { | |
75 | if (!node) return; | |
76 | if (!fNodeNames.IsNull()) fNodeNames+=" "; fNodeNames+=node; | |
77 | } | |
78 | ||
f84fefa5 | 79 | /// set the online command string |
1388e0c7 | 80 | void SetOnlineCommand(const char* cmd); |
81 | ||
82 | /** | |
f84fefa5 | 83 | * overloaded from AliHLTConfiguration |
84 | */ | |
85 | virtual void PrintStatus() const; | |
86 | ||
87 | /** | |
88 | * overloaded from AliHLTConfiguration | |
1388e0c7 | 89 | * options: |
f84fefa5 | 90 | * status - print status |
1388e0c7 | 91 | */ |
92 | virtual void Print(const char* option="") const; | |
93 | ||
f84fefa5 | 94 | |
1388e0c7 | 95 | protected: |
96 | ||
97 | private: | |
98 | /// component library | |
99 | TString fLibrary; // component library | |
100 | ||
101 | /// list of nodes of the component instances | |
102 | TString fNodeNames; // list of node names | |
103 | ||
104 | /// original command in the online configuration | |
105 | TString fOnlineCommand; // original online command | |
106 | ||
107 | ClassDef(AliHLTComponentConfiguration, 1); | |
108 | }; | |
109 | ||
110 | #endif |