3 #ifndef ALIHLTTRIGGERMENUSYMBOL_H
4 #define ALIHLTTRIGGERMENUSYMBOL_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 AliHLTTriggerMenuSymbol.h
10 /// @author Artur Szostak <artursz@iafrica.com>
12 /// @brief Declaration of the AliHLTTriggerMenuSymbol class.
16 #include "AliHLTDataTypes.h"
17 #include "AliHLTDomainEntry.h"
20 * \class AliHLTTriggerMenuSymbol
23 class AliHLTTriggerMenuSymbol : public TObject
28 * Default constructor.
30 AliHLTTriggerMenuSymbol();
35 virtual ~AliHLTTriggerMenuSymbol();
38 * Inherited from TObject, this prints the contents of the symbol.
39 * \param option Can be "compact", which will print in the compact format.
41 virtual void Print(Option_t* option = "") const;
44 * Returns the symbol name.
46 const char* Name() const { return fName.Data(); }
49 * Set the symbol name.
51 void Name(const char* value) { fName = value; }
54 * Returns the symbol data type.
56 const char* Type() const { return fType.Data(); }
59 * Set the symbol data type.
61 void Type(const char* value) { fType = value; }
64 * Returns the data block type and specification from which the symbol is fetched.
66 const AliHLTDomainEntry& BlockType() const { return fBlockType; }
69 * Set the data block type and specification from which the symbol is fetched.
70 * \param type The data block type and origin to use.
72 void BlockType(const AliHLTComponentDataType& type)
74 fBlockType = AliHLTDomainEntry(type);
78 * Set the data block type and specification from which the symbol is fetched.
79 * \param blocktype The data block type string of the data block. The value
80 * kAliHLTAnyDataTypeID can be used to specify the any type wild card value.
81 * \param origin The origin of the data block, such as the detector name.
82 * The value kAliHLTDataOriginAny can be used to specify the any origin
85 void BlockType(const char* blocktype, const char* origin)
87 fBlockType = AliHLTDomainEntry(blocktype, origin);
91 * Set the data block type and specification from which the symbol is fetched.
92 * \param type The data block type and origin to use.
93 * \param spec The data block specification to use.
95 void BlockType(const AliHLTComponentDataType& type, UInt_t spec)
97 fBlockType = AliHLTDomainEntry(type, spec);
101 * Set the data block type and specification from which the symbol is fetched.
102 * \param blocktype The data block type string of the data block. The value
103 * kAliHLTAnyDataTypeID can be used to specify the any type wild card value.
104 * \param origin The origin of the data block, such as the detector name.
105 * The value kAliHLTDataOriginAny can be used to specify the any origin
107 * \param spec The data block specification to use.
109 void BlockType(const char* blocktype, const char* origin, UInt_t spec)
111 fBlockType = AliHLTDomainEntry(blocktype, origin, spec);
115 * Returns the class name of the object in the data block.
117 const char* ObjectClass() const { return fClass.Data(); }
120 * Set the class name of the object in the data block.
122 void ObjectClass(const char* value) { fClass = value; }
125 * Returns the expression to assign the symbol value.
127 const char* AssignExpression() const { return fAssignExpr.Data(); }
130 * Set the expression to assign the symbol value.
131 * The keyword 'this' is used as the place holder of the object in the matched
134 void AssignExpression(const char* value) { fAssignExpr = value; }
137 * Returns the default value expression.
139 const char* DefaultValue() const { return fDefaultValue.Data(); }
142 * Set the default value expression.
144 void DefaultValue(const char* value) { fDefaultValue = value; }
148 TString fName; /// The name of the symbol (Must be a valid C++ variable name).
149 TString fType; /// The data type of the symbol (Must be a valid C++ type name).
150 AliHLTDomainEntry fBlockType; /// The data block type and specification this symbol is fetched from.
151 TString fClass; /// The class name of the object to read from (Must be a valid C++ class name).
152 TString fAssignExpr; /// The expression to assign to the symbol (Must be a valid C++ expression).
153 TString fDefaultValue; /// The default value this symbol is set to (this must be a valid C++ expression).
155 ClassDef(AliHLTTriggerMenuSymbol, 2) // Trigger menu item for global HLT trigger.
158 #endif // ALIHLTTRIGGERMENUSYMBOL_H