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 *
9 /// @file AliHLTComponentConfiguration.h
10 /// @author Matthias Richter
12 /// @brief HLT configuration description for a single component.
13 /// @note The class is used in Offline (AliRoot) context
15 #include "AliHLTConfiguration.h"
18 * @class AliHLTComponentConfiguration
19 * @brief Description of an HLT component configuration.
21 * In addition to the base class AliHLTConfiguration the additional online
22 * component parameters are available in this class
24 * - shared memory settings
26 * This class is only used in the HLT offline environment, see @ref alihlt_system
29 * @ingroup alihlt_system
31 class AliHLTComponentConfiguration : public AliHLTConfiguration {
34 * standard constructor. The configuration is automatically registered in the
35 * global configuration manager
37 AliHLTComponentConfiguration();
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
46 AliHLTComponentConfiguration(const char* id, const char* component,
47 const char* sources, const char* arguments);
48 /** copy constructor */
49 AliHLTComponentConfiguration(const AliHLTComponentConfiguration& src);
51 AliHLTComponentConfiguration& operator=(const AliHLTComponentConfiguration& src);
53 virtual ~AliHLTComponentConfiguration();
56 * Return the component library.
58 const char* GetComponentLibrary() const {return fLibrary.Data();}
61 * Return the online command.
63 const char* GetOnlineCommand() const {return fOnlineCommand.Data();}
66 * Return the online nodes.
68 const char* GetNodeSettings() const {return fNodeNames.Data();}
70 void SetComponentLibrary(const char* library) {fLibrary=library;}
72 void SetNodeNames(const char* nodes) {fNodeNames=nodes;}
74 void AddNode(const char* node) {
76 if (!fNodeNames.IsNull()) fNodeNames+=" "; fNodeNames+=node;
79 /// set the online command string
80 void SetOnlineCommand(const char* cmd);
83 * overloaded from AliHLTConfiguration
85 virtual void PrintStatus() const;
88 * overloaded from AliHLTConfiguration
90 * status - print status
92 virtual void Print(const char* option="") const;
99 TString fLibrary; // component library
101 /// list of nodes of the component instances
102 TString fNodeNames; // list of node names
104 /// original command in the online configuration
105 TString fOnlineCommand; // original online command
107 ClassDef(AliHLTComponentConfiguration, 1);