1 /**************************************************************************
2 * This file is property of and copyright by the ALICE HLT Project *
3 * ALICE Experiment at CERN, All rights reserved. *
5 * Primary Authors: Artur Szostak <artursz@iafrica.com> *
6 * for The ALICE HLT Project. *
8 * Permission to use, copy, modify and distribute this software and its *
9 * documentation strictly for non-commercial purposes is hereby granted *
10 * without fee, provided that the above copyright notice appears in all *
11 * copies and that both the copyright notice and this permission notice *
12 * appear in the supporting documentation. The authors make no claims *
13 * about the suitability of this software for any purpose. It is *
14 * provided "as is" without express or implied warranty. *
15 **************************************************************************/
17 /// @file AliHLTGlobalTriggerConfig.cxx
18 /// @author Artur Szostak <artursz@iafrica.com>
20 /// @brief Implementation of the AliHLTGlobalTriggerConfig class.
22 /// The AliHLTGlobalTriggerConfigComponent class is an interface class used to create
23 /// global HLT trigger menu configurations.
25 #include "AliHLTGlobalTriggerConfig.h"
26 #include "AliHLTTriggerMenu.h"
28 ClassImp(AliHLTGlobalTriggerConfig)
30 AliHLTTriggerMenu* AliHLTGlobalTriggerConfig::fgMenu = NULL;
33 AliHLTGlobalTriggerConfig::AliHLTGlobalTriggerConfig(const char* name)
35 // Default constructor.
41 AliHLTGlobalTriggerConfig::~AliHLTGlobalTriggerConfig()
43 // Default destructor.
47 void AliHLTGlobalTriggerConfig::NewMenu(const char* name)
49 // Creates a new trigger menu.
56 fgMenu = new AliHLTTriggerMenu;
61 void AliHLTGlobalTriggerConfig::Clear()
63 // Deletes the current trigger menu.
73 void AliHLTGlobalTriggerConfig::AddSymbol(
74 const char* name, const char* type, const char* assignExpr,
75 const char* defaultExpr, const char* className
78 // Adds a new symbol to the trigger menu.
80 if (fgMenu == NULL) NewMenu("");
82 AliHLTTriggerMenuSymbol entry;
85 entry.ObjectClass(className);
86 entry.AssignExpression(assignExpr);
87 entry.DefaultValue(defaultExpr);
88 fgMenu->AddSymbol(entry);
92 void AliHLTGlobalTriggerConfig::AddSymbol(
93 const char* name, const char* type, const char* assignExpr,
94 const char* defaultExpr, const char* className,
95 const AliHLTComponentDataType& blockType
98 // Adds a new symbol to the trigger menu.
100 if (fgMenu == NULL) NewMenu("");
102 AliHLTTriggerMenuSymbol entry;
105 entry.ObjectClass(className);
106 entry.AssignExpression(assignExpr);
107 entry.DefaultValue(defaultExpr);
108 entry.BlockType(blockType);
109 fgMenu->AddSymbol(entry);
113 void AliHLTGlobalTriggerConfig::AddSymbol(
114 const char* name, const char* type, const char* assignExpr,
115 const char* defaultExpr, const char* className,
116 const AliHLTComponentDataType& blockType, UInt_t spec
119 // Adds a new symbol to the trigger menu.
121 if (fgMenu == NULL) NewMenu("");
123 AliHLTTriggerMenuSymbol entry;
126 entry.ObjectClass(className);
127 entry.AssignExpression(assignExpr);
128 entry.DefaultValue(defaultExpr);
129 entry.BlockType(blockType, spec);
130 fgMenu->AddSymbol(entry);
134 void AliHLTGlobalTriggerConfig::AddSymbol(
135 const char* name, const char* type, const char* assignExpr,
136 const char* defaultExpr, const char* className,
137 const char* blockType, const char* origin
140 // Adds a new symbol to the trigger menu.
142 if (fgMenu == NULL) NewMenu("");
144 AliHLTTriggerMenuSymbol entry;
147 entry.ObjectClass(className);
148 entry.AssignExpression(assignExpr);
149 entry.DefaultValue(defaultExpr);
150 entry.BlockType(blockType, origin);
151 fgMenu->AddSymbol(entry);
155 void AliHLTGlobalTriggerConfig::AddSymbol(
156 const char* name, const char* type, const char* assignExpr,
157 const char* defaultExpr, const char* className,
158 const char* blockType, const char* origin, UInt_t spec
161 // Adds a new symbol to the trigger menu.
163 if (fgMenu == NULL) NewMenu("");
165 AliHLTTriggerMenuSymbol entry;
168 entry.ObjectClass(className);
169 entry.AssignExpression(assignExpr);
170 entry.DefaultValue(defaultExpr);
171 entry.BlockType(blockType, origin, spec);
172 fgMenu->AddSymbol(entry);
176 void AliHLTGlobalTriggerConfig::AddItem(
177 const char* conditionExpr, const char* domainExpr, UInt_t prescalar,
178 const char* description
181 // Adds a new entry to the trigger menu.
183 if (fgMenu == NULL) NewMenu("");
185 AliHLTTriggerMenuItem entry;
186 entry.TriggerCondision(conditionExpr);
187 entry.MergeExpression(domainExpr);
188 entry.PreScalar(prescalar);
189 if (description != NULL) entry.Description(description);
190 fgMenu->AddItem(entry);
194 void AliHLTGlobalTriggerConfig::AddItem(
195 const char* conditionExpr, const char* domainExpr, const char* description
198 // Adds a new entry to the trigger menu.
200 if (fgMenu == NULL) NewMenu("");
202 AliHLTTriggerMenuItem entry;
203 entry.TriggerCondision(conditionExpr);
204 entry.MergeExpression(domainExpr);
205 if (description != NULL) entry.Description(description);
206 fgMenu->AddItem(entry);