#include <cerrno>
#include <fstream>
#include <iostream>
#include <cstdio>
#include <TDOMParser.h>
#include <TXMLAttr.h>
#include <TXMLNode.h>
#include <TString.h>
#include <TObjString.h>
#include "AliHLTConfigurationHandler.h"
#include "AliHLTDAQ.h"
#include "AliHLTOnlineConfiguration.h"
#include "AliHLTComponentConfiguration.h"
ClassImp(AliHLTOnlineConfiguration)
AliHLTOnlineConfiguration::AliHLTOnlineConfiguration()
: TObject()
, fXMLBuffer()
, fXMLSize(0)
, fConfEntryList()
, fDefaultChains()
{
}
AliHLTOnlineConfiguration::~AliHLTOnlineConfiguration()
{
}
int AliHLTOnlineConfiguration::LoadConfiguration(const char* filename)
{
if (TestBit(kLoaded))
return -EPROTO;
ifstream in;
in.open(filename);
if (!in.is_open())
return -EIO;
size_t filesize = 0;
in.seekg(0, std::ios::end );
filesize = in.tellg();
in.seekg(0, std::ios::beg);
char * content = new char[filesize];
in.read(content, filesize);
in.close();
fXMLBuffer.Adopt(filesize, content);
fXMLSize = filesize;
SetBit(kLoaded);
return filesize;
}
int AliHLTOnlineConfiguration::Compress()
{
return 0;
}
int AliHLTOnlineConfiguration::Uncompress()
{
return 0;
}
int AliHLTOnlineConfiguration::Parse()
{
int iResult = 0;
if (TestBit(kLoaded) && !TestBit(kParsed)) {
iResult = -EINVAL;
TDOMParser *domParser = new TDOMParser();
domParser->SetValidate(false);
Int_t parsecode = domParser->ParseBuffer(fXMLBuffer.GetArray(), fXMLSize);
if (parsecode < 0) {
HLTError("Configuration XML invalid or not well-formed (error code %d)", parsecode);
}
else {
TXMLDocument* doc;
if ((doc = domParser->GetXMLDocument()) && doc->GetRootNode()) {
AliHLTConfigurationHandler* pHandler = AliHLTConfigurationHandler::Instance();
pHandler->Deactivate(true);
iResult = ParseConfiguration(doc->GetRootNode());
if (iResult == 0)
SetBit(kParsed);
else {
pHandler->ClearScheduledRegistrations();
fConfEntryList.Delete();
fDefaultChains.Clear();
}
pHandler->Activate();
}
}
delete domParser;
}
else
iResult = -EPROTO;
return iResult;
}
int AliHLTOnlineConfiguration::ParseConfiguration(TXMLNode* node)
{
int iResult = 0;
int nElems = 0;
if (node && node->GetChildren()) {
node = node->GetChildren();
for (; node && iResult == 0; node = node->GetNextNode()) {
if (node->GetNodeType() == TXMLNode::kXMLElementNode) {
if (strcmp(node->GetNodeName(), "Proc") == 0) {
const char* id = 0;
const char* type = 0;
if (node->HasAttributes()) {
TList* attrList = node->GetAttributes();
TXMLAttr* attr = 0;
TIter next(attrList);
while ((attr=(TXMLAttr*)next()))
if (strcmp(attr->GetName(), "ID") == 0) {
id = attr->GetValue();
} else if (strcmp(attr->GetName(), "type") == 0) {
type = attr->GetValue();
}
}
if (id && type && node->GetChildren()) {
iResult = ParseEntry(node->GetChildren(), id, type);
if (iResult == 0)
nElems++;
}
else {
iResult = -EINVAL;
if (!id) {
HLTError("Configuration component missing ID attribute");
}
else if (!type) {
HLTError("Configuration component missing type attribute");
}
else {
HLTError("Empty configuration component %s", id);
}
}
}
}
}
if (iResult != 0) {
HLTError("An error occurred parsing the configuration. Aborting...");
}
else if (!nElems) {
iResult = -EINVAL;
HLTError("Configuration did not contain any (valid) elements");
}
}
else {
iResult = -EINVAL;
HLTError("Configuration was empty");
}
return iResult;
}
int AliHLTOnlineConfiguration::ParseEntry(TXMLNode* node, const char* id,
const char* type)
{
int iResult = 0;
const char* cmd = 0;
const char* source = 0;
TString sources;
TString nodes;
for (; node; node = node->GetNextNode()) {
if (node->GetNodeType() == TXMLNode::kXMLElementNode) {
if (strcmp(node->GetNodeName(), "Cmd") == 0) {
if (!cmd)
cmd = node->GetText();
}
else if (strcmp(node->GetNodeName(), "Node") == 0) {
if (!nodes.IsNull()) nodes += " "; nodes += node->GetText();
}
else if (strcmp(node->GetNodeName(), "Parent") == 0) {
source = node->GetText();
if (sources.Contains(source)) {
iResult = -EINVAL;
HLTError("Configuration component %s has duplicate <Parent> element %s",
id, source);
break;
}
if (!sources.IsNull()) sources += " "; sources += node->GetText();
}
}
}
if (iResult == 0) {
if (!cmd) {
iResult = -EINVAL;
HLTError("Configuration component %s does not contain <Cmd> element", id);
}
else if (cmd == strstr(cmd, "AliRootWrapperSubscriber"))
iResult = ParseStandardComponent(id, type, cmd, sources, nodes);
else if (cmd == strstr(cmd, "RORCPublisher"))
iResult = ParseRORCPublisher(id, type, cmd, sources, nodes);
else if (cmd == strstr(cmd, "TCPDumpSubscriber"))
iResult = ParseTCPDumpSubscriber(id, type, cmd, sources, nodes);
else if (cmd == strstr(cmd, "Relay"))
iResult = ParseRelay(id, type, cmd, sources, nodes);
else if (cmd == strstr(cmd, "HLTOutFormatter"))
iResult = ParseHLTOutFormatter(id, type, cmd, sources, nodes);
else if (cmd == strstr(cmd, "HLTOutWriterSubscriber"))
iResult = ParseHLTOutWriterSubscriber(id, type, cmd, sources, nodes);
else {
iResult = -EINVAL;
HLTError("Configuration component %s contains unknown <Cmd> element", id);
}
}
return iResult;
}
int AliHLTOnlineConfiguration::ParseStandardComponent(const char* id,
const char* type, const char* cmd, TString& sources, TString& nodes)
{
int iResult = 0;
if (strcmp(type, "prc") != 0) {
iResult = -EINVAL;
HLTError("Configuration component %s has invalid type %s (expected prc)",
id, type);
}
else {
const char* compid="";
const char* complib="";
char* compargs = 0;
bool hasArgs = false;
char* cmdcopy = new char[strlen(cmd)+1];
if (!cmdcopy) return -ENOMEM;
cmdcopy[strlen(cmd)]=0;
strncpy(cmdcopy, cmd, strlen(cmd));
strtok(cmdcopy, " -");
char* strtmp = 0;
bool CFTransform = false;
while (((strtmp = strtok(0, " -")))) {
if (strcmp(strtmp, "componentid") == 0) {
compid = strtok(0, " -");
if (strcmp(compid, "TPCHWClusterTransform") == 0)
CFTransform = true;
}
else if (strcmp(strtmp, "componentargs") == 0)
hasArgs = true;
else if (strcmp(strtmp, "componentlibrary") == 0)
complib = strtok(0, " -");
}
if (CFTransform) {
compid = "TPCClusterFinder32Bit";
hasArgs = false;
}
if (hasArgs) {
int start = strstr(cmd, "-componentargs") + strlen("-componentargs") + 2
- cmd;
int arglen = strcspn(cmd+start, "\"");
if ((size_t)(start+arglen) < strlen(cmd) && cmd[start-1] == '\"' &&
cmd[start+arglen] == '\"')
{
compargs = new char[arglen+1];
strncpy(compargs, cmd + start, arglen);
compargs[arglen] = '\0';
}
}
if (!compid) {
iResult = -EINVAL;
HLTError("Configuration component %s is missing component id", id);
}
if (!complib) {
iResult = -EINVAL;
HLTError("Configuration component %s is missing component library", id);
}
if (hasArgs && !compargs) {
iResult = -EINVAL;
HLTError("Configuration component %s is missing component arguments", id);
}
if (iResult == 0) {
AliHLTComponentConfiguration* entry = new AliHLTComponentConfiguration(id,
compid, sources.Data(), compargs);
entry->SetOnlineCommand(cmd);
entry->SetComponentLibrary(complib);
entry->SetNodeNames(nodes.Data());
fConfEntryList.Add(entry);
}
delete [] cmdcopy;
delete [] compargs;
}
return iResult;
}
int AliHLTOnlineConfiguration::ParseRORCPublisher(const char* id,
const char* type, const char* cmd, TString& sources, TString& nodes)
{
int iResult = 0;
if (strcmp(type, "src") != 0) {
iResult = -EINVAL;
HLTError("Configuration component %s has invalid type %s (expected src)",
id, type);
}
else {
const char compid[] = "AliRawReaderPublisher";
const char complib[] = "libAliHLTUtil.so";
int ddlID;
int res;
if (strstr(cmd, "-hwcoproc")) {
const char* key=strstr(cmd, "-ddlid");
if (key)
res = sscanf(key, "-ddlid %d", &ddlID);
else
res=0;
} else {
res = sscanf(cmd, "RORCPublisher -slot %*d %*d %*d %*d -rorcinterface %*d -sleep "
"-sleeptime %*d -maxpendingevents %*d -alicehlt -ddlid %d", &ddlID);
}
if (res != 1) {
iResult = -EINVAL;
HLTError("Configuration component %s has <Cmd> element of unknown format\n"
"Expected format: RORCPublisher -slot %%d %%d %%d %%d -rorcinterface %%d "
"-sleep -sleeptime %%d -maxpendingevents %%d -alicehlt -ddlid %%d", id);
}
else {
Int_t ddlIndex;
Int_t detectorID = AliHLTDAQ::DetectorIDFromDdlID(ddlID, ddlIndex);
string HLTOrigin = AliHLTDAQ::HLTOrigin(detectorID);
string HLTSpecification = AliHLTDAQ::HLTSpecificationFromDdlID(ddlID);
TString compargs;
compargs.Form("-minid %d -datatype 'DDL_RAW ' '%s' -dataspec %s",
ddlID, HLTOrigin.c_str(), HLTSpecification.c_str());
AliHLTComponentConfiguration* entry = new AliHLTComponentConfiguration(id,
compid, sources.Data(), compargs.Data());
entry->SetOnlineCommand(cmd);
entry->SetComponentLibrary(complib);
entry->SetNodeNames(nodes.Data());
fConfEntryList.Add(entry);
}
}
return iResult;
}
int AliHLTOnlineConfiguration::ParseTCPDumpSubscriber(const char* id,
const char* type, const char* , TString& ,
TString& )
{
int iResult = 0;
if (strcmp(type, "snk") != 0) {
iResult = -EINVAL;
HLTError("Configuration component %s has invalid type %s (expected snk)",
id, type);
}
return iResult;
}
int AliHLTOnlineConfiguration::ParseRelay(const char* id, const char* type,
const char* cmd, TString& sources, TString& nodes)
{
int iResult = 0;
if (strcmp(type, "prc") != 0) {
iResult = -EINVAL;
HLTError("Configuration component %s has invalid type %s (expected prc)",
id, type);
}
else {
const char compid[] = "BlockFilter";
const char complib[] = "libAliHLTUtil.so";
const char* compargs = "";
if (strcmp(cmd, "Relay") == 0) {
AliHLTComponentConfiguration* entry = new AliHLTComponentConfiguration(id,
compid, sources.Data(), compargs);
entry->SetOnlineCommand(cmd);
entry->SetComponentLibrary(complib);
entry->SetNodeNames(nodes.Data());
fConfEntryList.Add(entry);
}
else {
iResult = -EINVAL;
HLTError("Configuration component %s has <Cmd> element of unknown type "
"\"%s\"", id, cmd);
}
}
return iResult;
}
int AliHLTOnlineConfiguration::ParseHLTOutFormatter(const char* id,
const char* type, const char* , TString& sources,
TString& )
{
int iResult = 0;
if (strcmp(type, "prc") != 0) {
iResult = -EINVAL;
HLTError("Configuration component %s has invalid type %s (expected prc)",
id, type);
}
else {
fDefaultChains = sources;
}
return iResult;
}
int AliHLTOnlineConfiguration::ParseHLTOutWriterSubscriber(const char* id,
const char* type, const char* , TString& ,
TString& )
{
int iResult = 0;
if (strcmp(type, "snk") != 0) {
iResult = -EINVAL;
HLTError("Configuration component %s has invalid type %s (expected snk)",
id, type);
}
return iResult;
}
TString AliHLTOnlineConfiguration::GetComponentLibraries()
{
TString result;
AliHLTComponentConfiguration* pConf;
const char* complib;
TIter next(&fConfEntryList);
while ((pConf=(AliHLTComponentConfiguration*)next())) {
complib = pConf->GetComponentLibrary();
if (!result.Contains(complib)) {
if (!result.IsNull()) result+=" "; result+=complib;
}
}
return result;
}
void AliHLTOnlineConfiguration::Print(const char* options) const
{
const UInt_t defaultSampleSize = 200;
TObject::Print(options);
printf("Configuration loaded: %s\n", (TestBit(kLoaded) ? "YES" : "NO"));
TString opt = options;
opt.ToLower();
Bool_t buffer = opt.Contains("buffer");
Bool_t parsed = opt.Contains("parsed");
if (TestBit(kLoaded)) {
if (buffer) {
char configuration[fXMLSize + 1];
strncpy(configuration, fXMLBuffer.GetArray(), fXMLSize);
printf("%s\n\n", configuration);
} else if (parsed) {
AliHLTComponentConfiguration* pConf;
TIter next(&fConfEntryList);
while ((pConf=(AliHLTComponentConfiguration*)next())) {
pConf->Print("status");
}
} else {
Int_t sampleSize = (defaultSampleSize <= fXMLSize) ?
defaultSampleSize : fXMLSize;
char sample[sampleSize];
for (int i = 0; i < sampleSize - 1; i++)
sample[i] = fXMLBuffer.At(i);
sample[sampleSize - 1] = '\0';
printf("%s...\n\n", sample);
}
}
printf("XML size (uncompressed): %d\n", fXMLSize);
printf("Configuration compressed: %s\n", (TestBit(kCompressed) ? "YES" : "NO"));
printf("Configuration parsed: %s\n", (TestBit(kParsed) ? "YES" : "NO"));
printf("Parsed configuration entries: %d\n", fConfEntryList.GetSize());
printf("Default chains: %s\n", fDefaultChains.Data());
}
void AliHLTOnlineConfiguration::Dump() const
{
TObject::Dump();
}
void AliHLTOnlineConfiguration::Clear(Option_t * option)
{
TObject::Clear(option);
fConfEntryList.Delete();
fDefaultChains.Clear();
fXMLBuffer.Reset();
fXMLSize = 0;
ResetBit(kLoaded);
ResetBit(kCompressed);
ResetBit(kParsed);
}
TObject * AliHLTOnlineConfiguration::Clone(const char *newname) const
{
return TObject::Clone(newname);
}
void AliHLTOnlineConfiguration::Copy(TObject &object) const
{
TObject::Copy(object);
}
void AliHLTOnlineConfiguration::Draw(Option_t *)
{
}
AliHLTOnlineConfiguration.cxx:1 AliHLTOnlineConfiguration.cxx:2 AliHLTOnlineConfiguration.cxx:3 AliHLTOnlineConfiguration.cxx:4 AliHLTOnlineConfiguration.cxx:5 AliHLTOnlineConfiguration.cxx:6 AliHLTOnlineConfiguration.cxx:7 AliHLTOnlineConfiguration.cxx:8 AliHLTOnlineConfiguration.cxx:9 AliHLTOnlineConfiguration.cxx:10 AliHLTOnlineConfiguration.cxx:11 AliHLTOnlineConfiguration.cxx:12 AliHLTOnlineConfiguration.cxx:13 AliHLTOnlineConfiguration.cxx:14 AliHLTOnlineConfiguration.cxx:15 AliHLTOnlineConfiguration.cxx:16 AliHLTOnlineConfiguration.cxx:17 AliHLTOnlineConfiguration.cxx:18 AliHLTOnlineConfiguration.cxx:19 AliHLTOnlineConfiguration.cxx:20 AliHLTOnlineConfiguration.cxx:21 AliHLTOnlineConfiguration.cxx:22 AliHLTOnlineConfiguration.cxx:23 AliHLTOnlineConfiguration.cxx:24 AliHLTOnlineConfiguration.cxx:25 AliHLTOnlineConfiguration.cxx:26 AliHLTOnlineConfiguration.cxx:27 AliHLTOnlineConfiguration.cxx:28 AliHLTOnlineConfiguration.cxx:29 AliHLTOnlineConfiguration.cxx:30 AliHLTOnlineConfiguration.cxx:31 AliHLTOnlineConfiguration.cxx:32 AliHLTOnlineConfiguration.cxx:33 AliHLTOnlineConfiguration.cxx:34 AliHLTOnlineConfiguration.cxx:35 AliHLTOnlineConfiguration.cxx:36 AliHLTOnlineConfiguration.cxx:37 AliHLTOnlineConfiguration.cxx:38 AliHLTOnlineConfiguration.cxx:39 AliHLTOnlineConfiguration.cxx:40 AliHLTOnlineConfiguration.cxx:41 AliHLTOnlineConfiguration.cxx:42 AliHLTOnlineConfiguration.cxx:43 AliHLTOnlineConfiguration.cxx:44 AliHLTOnlineConfiguration.cxx:45 AliHLTOnlineConfiguration.cxx:46 AliHLTOnlineConfiguration.cxx:47 AliHLTOnlineConfiguration.cxx:48 AliHLTOnlineConfiguration.cxx:49 AliHLTOnlineConfiguration.cxx:50 AliHLTOnlineConfiguration.cxx:51 AliHLTOnlineConfiguration.cxx:52 AliHLTOnlineConfiguration.cxx:53 AliHLTOnlineConfiguration.cxx:54 AliHLTOnlineConfiguration.cxx:55 AliHLTOnlineConfiguration.cxx:56 AliHLTOnlineConfiguration.cxx:57 AliHLTOnlineConfiguration.cxx:58 AliHLTOnlineConfiguration.cxx:59 AliHLTOnlineConfiguration.cxx:60 AliHLTOnlineConfiguration.cxx:61 AliHLTOnlineConfiguration.cxx:62 AliHLTOnlineConfiguration.cxx:63 AliHLTOnlineConfiguration.cxx:64 AliHLTOnlineConfiguration.cxx:65 AliHLTOnlineConfiguration.cxx:66 AliHLTOnlineConfiguration.cxx:67 AliHLTOnlineConfiguration.cxx:68 AliHLTOnlineConfiguration.cxx:69 AliHLTOnlineConfiguration.cxx:70 AliHLTOnlineConfiguration.cxx:71 AliHLTOnlineConfiguration.cxx:72 AliHLTOnlineConfiguration.cxx:73 AliHLTOnlineConfiguration.cxx:74 AliHLTOnlineConfiguration.cxx:75 AliHLTOnlineConfiguration.cxx:76 AliHLTOnlineConfiguration.cxx:77 AliHLTOnlineConfiguration.cxx:78 AliHLTOnlineConfiguration.cxx:79 AliHLTOnlineConfiguration.cxx:80 AliHLTOnlineConfiguration.cxx:81 AliHLTOnlineConfiguration.cxx:82 AliHLTOnlineConfiguration.cxx:83 AliHLTOnlineConfiguration.cxx:84 AliHLTOnlineConfiguration.cxx:85 AliHLTOnlineConfiguration.cxx:86 AliHLTOnlineConfiguration.cxx:87 AliHLTOnlineConfiguration.cxx:88 AliHLTOnlineConfiguration.cxx:89 AliHLTOnlineConfiguration.cxx:90 AliHLTOnlineConfiguration.cxx:91 AliHLTOnlineConfiguration.cxx:92 AliHLTOnlineConfiguration.cxx:93 AliHLTOnlineConfiguration.cxx:94 AliHLTOnlineConfiguration.cxx:95 AliHLTOnlineConfiguration.cxx:96 AliHLTOnlineConfiguration.cxx:97 AliHLTOnlineConfiguration.cxx:98 AliHLTOnlineConfiguration.cxx:99 AliHLTOnlineConfiguration.cxx:100 AliHLTOnlineConfiguration.cxx:101 AliHLTOnlineConfiguration.cxx:102 AliHLTOnlineConfiguration.cxx:103 AliHLTOnlineConfiguration.cxx:104 AliHLTOnlineConfiguration.cxx:105 AliHLTOnlineConfiguration.cxx:106 AliHLTOnlineConfiguration.cxx:107 AliHLTOnlineConfiguration.cxx:108 AliHLTOnlineConfiguration.cxx:109 AliHLTOnlineConfiguration.cxx:110 AliHLTOnlineConfiguration.cxx:111 AliHLTOnlineConfiguration.cxx:112 AliHLTOnlineConfiguration.cxx:113 AliHLTOnlineConfiguration.cxx:114 AliHLTOnlineConfiguration.cxx:115 AliHLTOnlineConfiguration.cxx:116 AliHLTOnlineConfiguration.cxx:117 AliHLTOnlineConfiguration.cxx:118 AliHLTOnlineConfiguration.cxx:119 AliHLTOnlineConfiguration.cxx:120 AliHLTOnlineConfiguration.cxx:121 AliHLTOnlineConfiguration.cxx:122 AliHLTOnlineConfiguration.cxx:123 AliHLTOnlineConfiguration.cxx:124 AliHLTOnlineConfiguration.cxx:125 AliHLTOnlineConfiguration.cxx:126 AliHLTOnlineConfiguration.cxx:127 AliHLTOnlineConfiguration.cxx:128 AliHLTOnlineConfiguration.cxx:129 AliHLTOnlineConfiguration.cxx:130 AliHLTOnlineConfiguration.cxx:131 AliHLTOnlineConfiguration.cxx:132 AliHLTOnlineConfiguration.cxx:133 AliHLTOnlineConfiguration.cxx:134 AliHLTOnlineConfiguration.cxx:135 AliHLTOnlineConfiguration.cxx:136 AliHLTOnlineConfiguration.cxx:137 AliHLTOnlineConfiguration.cxx:138 AliHLTOnlineConfiguration.cxx:139 AliHLTOnlineConfiguration.cxx:140 AliHLTOnlineConfiguration.cxx:141 AliHLTOnlineConfiguration.cxx:142 AliHLTOnlineConfiguration.cxx:143 AliHLTOnlineConfiguration.cxx:144 AliHLTOnlineConfiguration.cxx:145 AliHLTOnlineConfiguration.cxx:146 AliHLTOnlineConfiguration.cxx:147 AliHLTOnlineConfiguration.cxx:148 AliHLTOnlineConfiguration.cxx:149 AliHLTOnlineConfiguration.cxx:150 AliHLTOnlineConfiguration.cxx:151 AliHLTOnlineConfiguration.cxx:152 AliHLTOnlineConfiguration.cxx:153 AliHLTOnlineConfiguration.cxx:154 AliHLTOnlineConfiguration.cxx:155 AliHLTOnlineConfiguration.cxx:156 AliHLTOnlineConfiguration.cxx:157 AliHLTOnlineConfiguration.cxx:158 AliHLTOnlineConfiguration.cxx:159 AliHLTOnlineConfiguration.cxx:160 AliHLTOnlineConfiguration.cxx:161 AliHLTOnlineConfiguration.cxx:162 AliHLTOnlineConfiguration.cxx:163 AliHLTOnlineConfiguration.cxx:164 AliHLTOnlineConfiguration.cxx:165 AliHLTOnlineConfiguration.cxx:166 AliHLTOnlineConfiguration.cxx:167 AliHLTOnlineConfiguration.cxx:168 AliHLTOnlineConfiguration.cxx:169 AliHLTOnlineConfiguration.cxx:170 AliHLTOnlineConfiguration.cxx:171 AliHLTOnlineConfiguration.cxx:172 AliHLTOnlineConfiguration.cxx:173 AliHLTOnlineConfiguration.cxx:174 AliHLTOnlineConfiguration.cxx:175 AliHLTOnlineConfiguration.cxx:176 AliHLTOnlineConfiguration.cxx:177 AliHLTOnlineConfiguration.cxx:178 AliHLTOnlineConfiguration.cxx:179 AliHLTOnlineConfiguration.cxx:180 AliHLTOnlineConfiguration.cxx:181 AliHLTOnlineConfiguration.cxx:182 AliHLTOnlineConfiguration.cxx:183 AliHLTOnlineConfiguration.cxx:184 AliHLTOnlineConfiguration.cxx:185 AliHLTOnlineConfiguration.cxx:186 AliHLTOnlineConfiguration.cxx:187 AliHLTOnlineConfiguration.cxx:188 AliHLTOnlineConfiguration.cxx:189 AliHLTOnlineConfiguration.cxx:190 AliHLTOnlineConfiguration.cxx:191 AliHLTOnlineConfiguration.cxx:192 AliHLTOnlineConfiguration.cxx:193 AliHLTOnlineConfiguration.cxx:194 AliHLTOnlineConfiguration.cxx:195 AliHLTOnlineConfiguration.cxx:196 AliHLTOnlineConfiguration.cxx:197 AliHLTOnlineConfiguration.cxx:198 AliHLTOnlineConfiguration.cxx:199 AliHLTOnlineConfiguration.cxx:200 AliHLTOnlineConfiguration.cxx:201 AliHLTOnlineConfiguration.cxx:202 AliHLTOnlineConfiguration.cxx:203 AliHLTOnlineConfiguration.cxx:204 AliHLTOnlineConfiguration.cxx:205 AliHLTOnlineConfiguration.cxx:206 AliHLTOnlineConfiguration.cxx:207 AliHLTOnlineConfiguration.cxx:208 AliHLTOnlineConfiguration.cxx:209 AliHLTOnlineConfiguration.cxx:210 AliHLTOnlineConfiguration.cxx:211 AliHLTOnlineConfiguration.cxx:212 AliHLTOnlineConfiguration.cxx:213 AliHLTOnlineConfiguration.cxx:214 AliHLTOnlineConfiguration.cxx:215 AliHLTOnlineConfiguration.cxx:216 AliHLTOnlineConfiguration.cxx:217 AliHLTOnlineConfiguration.cxx:218 AliHLTOnlineConfiguration.cxx:219 AliHLTOnlineConfiguration.cxx:220 AliHLTOnlineConfiguration.cxx:221 AliHLTOnlineConfiguration.cxx:222 AliHLTOnlineConfiguration.cxx:223 AliHLTOnlineConfiguration.cxx:224 AliHLTOnlineConfiguration.cxx:225 AliHLTOnlineConfiguration.cxx:226 AliHLTOnlineConfiguration.cxx:227 AliHLTOnlineConfiguration.cxx:228 AliHLTOnlineConfiguration.cxx:229 AliHLTOnlineConfiguration.cxx:230 AliHLTOnlineConfiguration.cxx:231 AliHLTOnlineConfiguration.cxx:232 AliHLTOnlineConfiguration.cxx:233 AliHLTOnlineConfiguration.cxx:234 AliHLTOnlineConfiguration.cxx:235 AliHLTOnlineConfiguration.cxx:236 AliHLTOnlineConfiguration.cxx:237 AliHLTOnlineConfiguration.cxx:238 AliHLTOnlineConfiguration.cxx:239 AliHLTOnlineConfiguration.cxx:240 AliHLTOnlineConfiguration.cxx:241 AliHLTOnlineConfiguration.cxx:242 AliHLTOnlineConfiguration.cxx:243 AliHLTOnlineConfiguration.cxx:244 AliHLTOnlineConfiguration.cxx:245 AliHLTOnlineConfiguration.cxx:246 AliHLTOnlineConfiguration.cxx:247 AliHLTOnlineConfiguration.cxx:248 AliHLTOnlineConfiguration.cxx:249 AliHLTOnlineConfiguration.cxx:250 AliHLTOnlineConfiguration.cxx:251 AliHLTOnlineConfiguration.cxx:252 AliHLTOnlineConfiguration.cxx:253 AliHLTOnlineConfiguration.cxx:254 AliHLTOnlineConfiguration.cxx:255 AliHLTOnlineConfiguration.cxx:256 AliHLTOnlineConfiguration.cxx:257 AliHLTOnlineConfiguration.cxx:258 AliHLTOnlineConfiguration.cxx:259 AliHLTOnlineConfiguration.cxx:260 AliHLTOnlineConfiguration.cxx:261 AliHLTOnlineConfiguration.cxx:262 AliHLTOnlineConfiguration.cxx:263 AliHLTOnlineConfiguration.cxx:264 AliHLTOnlineConfiguration.cxx:265 AliHLTOnlineConfiguration.cxx:266 AliHLTOnlineConfiguration.cxx:267 AliHLTOnlineConfiguration.cxx:268 AliHLTOnlineConfiguration.cxx:269 AliHLTOnlineConfiguration.cxx:270 AliHLTOnlineConfiguration.cxx:271 AliHLTOnlineConfiguration.cxx:272 AliHLTOnlineConfiguration.cxx:273 AliHLTOnlineConfiguration.cxx:274 AliHLTOnlineConfiguration.cxx:275 AliHLTOnlineConfiguration.cxx:276 AliHLTOnlineConfiguration.cxx:277 AliHLTOnlineConfiguration.cxx:278 AliHLTOnlineConfiguration.cxx:279 AliHLTOnlineConfiguration.cxx:280 AliHLTOnlineConfiguration.cxx:281 AliHLTOnlineConfiguration.cxx:282 AliHLTOnlineConfiguration.cxx:283 AliHLTOnlineConfiguration.cxx:284 AliHLTOnlineConfiguration.cxx:285 AliHLTOnlineConfiguration.cxx:286 AliHLTOnlineConfiguration.cxx:287 AliHLTOnlineConfiguration.cxx:288 AliHLTOnlineConfiguration.cxx:289 AliHLTOnlineConfiguration.cxx:290 AliHLTOnlineConfiguration.cxx:291 AliHLTOnlineConfiguration.cxx:292 AliHLTOnlineConfiguration.cxx:293 AliHLTOnlineConfiguration.cxx:294 AliHLTOnlineConfiguration.cxx:295 AliHLTOnlineConfiguration.cxx:296 AliHLTOnlineConfiguration.cxx:297 AliHLTOnlineConfiguration.cxx:298 AliHLTOnlineConfiguration.cxx:299 AliHLTOnlineConfiguration.cxx:300 AliHLTOnlineConfiguration.cxx:301 AliHLTOnlineConfiguration.cxx:302 AliHLTOnlineConfiguration.cxx:303 AliHLTOnlineConfiguration.cxx:304 AliHLTOnlineConfiguration.cxx:305 AliHLTOnlineConfiguration.cxx:306 AliHLTOnlineConfiguration.cxx:307 AliHLTOnlineConfiguration.cxx:308 AliHLTOnlineConfiguration.cxx:309 AliHLTOnlineConfiguration.cxx:310 AliHLTOnlineConfiguration.cxx:311 AliHLTOnlineConfiguration.cxx:312 AliHLTOnlineConfiguration.cxx:313 AliHLTOnlineConfiguration.cxx:314 AliHLTOnlineConfiguration.cxx:315 AliHLTOnlineConfiguration.cxx:316 AliHLTOnlineConfiguration.cxx:317 AliHLTOnlineConfiguration.cxx:318 AliHLTOnlineConfiguration.cxx:319 AliHLTOnlineConfiguration.cxx:320 AliHLTOnlineConfiguration.cxx:321 AliHLTOnlineConfiguration.cxx:322 AliHLTOnlineConfiguration.cxx:323 AliHLTOnlineConfiguration.cxx:324 AliHLTOnlineConfiguration.cxx:325 AliHLTOnlineConfiguration.cxx:326 AliHLTOnlineConfiguration.cxx:327 AliHLTOnlineConfiguration.cxx:328 AliHLTOnlineConfiguration.cxx:329 AliHLTOnlineConfiguration.cxx:330 AliHLTOnlineConfiguration.cxx:331 AliHLTOnlineConfiguration.cxx:332 AliHLTOnlineConfiguration.cxx:333 AliHLTOnlineConfiguration.cxx:334 AliHLTOnlineConfiguration.cxx:335 AliHLTOnlineConfiguration.cxx:336 AliHLTOnlineConfiguration.cxx:337 AliHLTOnlineConfiguration.cxx:338 AliHLTOnlineConfiguration.cxx:339 AliHLTOnlineConfiguration.cxx:340 AliHLTOnlineConfiguration.cxx:341 AliHLTOnlineConfiguration.cxx:342 AliHLTOnlineConfiguration.cxx:343 AliHLTOnlineConfiguration.cxx:344 AliHLTOnlineConfiguration.cxx:345 AliHLTOnlineConfiguration.cxx:346 AliHLTOnlineConfiguration.cxx:347 AliHLTOnlineConfiguration.cxx:348 AliHLTOnlineConfiguration.cxx:349 AliHLTOnlineConfiguration.cxx:350 AliHLTOnlineConfiguration.cxx:351 AliHLTOnlineConfiguration.cxx:352 AliHLTOnlineConfiguration.cxx:353 AliHLTOnlineConfiguration.cxx:354 AliHLTOnlineConfiguration.cxx:355 AliHLTOnlineConfiguration.cxx:356 AliHLTOnlineConfiguration.cxx:357 AliHLTOnlineConfiguration.cxx:358 AliHLTOnlineConfiguration.cxx:359 AliHLTOnlineConfiguration.cxx:360 AliHLTOnlineConfiguration.cxx:361 AliHLTOnlineConfiguration.cxx:362 AliHLTOnlineConfiguration.cxx:363 AliHLTOnlineConfiguration.cxx:364 AliHLTOnlineConfiguration.cxx:365 AliHLTOnlineConfiguration.cxx:366 AliHLTOnlineConfiguration.cxx:367 AliHLTOnlineConfiguration.cxx:368 AliHLTOnlineConfiguration.cxx:369 AliHLTOnlineConfiguration.cxx:370 AliHLTOnlineConfiguration.cxx:371 AliHLTOnlineConfiguration.cxx:372 AliHLTOnlineConfiguration.cxx:373 AliHLTOnlineConfiguration.cxx:374 AliHLTOnlineConfiguration.cxx:375 AliHLTOnlineConfiguration.cxx:376 AliHLTOnlineConfiguration.cxx:377 AliHLTOnlineConfiguration.cxx:378 AliHLTOnlineConfiguration.cxx:379 AliHLTOnlineConfiguration.cxx:380 AliHLTOnlineConfiguration.cxx:381 AliHLTOnlineConfiguration.cxx:382 AliHLTOnlineConfiguration.cxx:383 AliHLTOnlineConfiguration.cxx:384 AliHLTOnlineConfiguration.cxx:385 AliHLTOnlineConfiguration.cxx:386 AliHLTOnlineConfiguration.cxx:387 AliHLTOnlineConfiguration.cxx:388 AliHLTOnlineConfiguration.cxx:389 AliHLTOnlineConfiguration.cxx:390 AliHLTOnlineConfiguration.cxx:391 AliHLTOnlineConfiguration.cxx:392 AliHLTOnlineConfiguration.cxx:393 AliHLTOnlineConfiguration.cxx:394 AliHLTOnlineConfiguration.cxx:395 AliHLTOnlineConfiguration.cxx:396 AliHLTOnlineConfiguration.cxx:397 AliHLTOnlineConfiguration.cxx:398 AliHLTOnlineConfiguration.cxx:399 AliHLTOnlineConfiguration.cxx:400 AliHLTOnlineConfiguration.cxx:401 AliHLTOnlineConfiguration.cxx:402 AliHLTOnlineConfiguration.cxx:403 AliHLTOnlineConfiguration.cxx:404 AliHLTOnlineConfiguration.cxx:405 AliHLTOnlineConfiguration.cxx:406 AliHLTOnlineConfiguration.cxx:407 AliHLTOnlineConfiguration.cxx:408 AliHLTOnlineConfiguration.cxx:409 AliHLTOnlineConfiguration.cxx:410 AliHLTOnlineConfiguration.cxx:411 AliHLTOnlineConfiguration.cxx:412 AliHLTOnlineConfiguration.cxx:413 AliHLTOnlineConfiguration.cxx:414 AliHLTOnlineConfiguration.cxx:415 AliHLTOnlineConfiguration.cxx:416 AliHLTOnlineConfiguration.cxx:417 AliHLTOnlineConfiguration.cxx:418 AliHLTOnlineConfiguration.cxx:419 AliHLTOnlineConfiguration.cxx:420 AliHLTOnlineConfiguration.cxx:421 AliHLTOnlineConfiguration.cxx:422 AliHLTOnlineConfiguration.cxx:423 AliHLTOnlineConfiguration.cxx:424 AliHLTOnlineConfiguration.cxx:425 AliHLTOnlineConfiguration.cxx:426 AliHLTOnlineConfiguration.cxx:427 AliHLTOnlineConfiguration.cxx:428 AliHLTOnlineConfiguration.cxx:429 AliHLTOnlineConfiguration.cxx:430 AliHLTOnlineConfiguration.cxx:431 AliHLTOnlineConfiguration.cxx:432 AliHLTOnlineConfiguration.cxx:433 AliHLTOnlineConfiguration.cxx:434 AliHLTOnlineConfiguration.cxx:435 AliHLTOnlineConfiguration.cxx:436 AliHLTOnlineConfiguration.cxx:437 AliHLTOnlineConfiguration.cxx:438 AliHLTOnlineConfiguration.cxx:439 AliHLTOnlineConfiguration.cxx:440 AliHLTOnlineConfiguration.cxx:441 AliHLTOnlineConfiguration.cxx:442 AliHLTOnlineConfiguration.cxx:443 AliHLTOnlineConfiguration.cxx:444 AliHLTOnlineConfiguration.cxx:445 AliHLTOnlineConfiguration.cxx:446 AliHLTOnlineConfiguration.cxx:447 AliHLTOnlineConfiguration.cxx:448 AliHLTOnlineConfiguration.cxx:449 AliHLTOnlineConfiguration.cxx:450 AliHLTOnlineConfiguration.cxx:451 AliHLTOnlineConfiguration.cxx:452 AliHLTOnlineConfiguration.cxx:453 AliHLTOnlineConfiguration.cxx:454 AliHLTOnlineConfiguration.cxx:455 AliHLTOnlineConfiguration.cxx:456 AliHLTOnlineConfiguration.cxx:457 AliHLTOnlineConfiguration.cxx:458 AliHLTOnlineConfiguration.cxx:459 AliHLTOnlineConfiguration.cxx:460 AliHLTOnlineConfiguration.cxx:461 AliHLTOnlineConfiguration.cxx:462 AliHLTOnlineConfiguration.cxx:463 AliHLTOnlineConfiguration.cxx:464 AliHLTOnlineConfiguration.cxx:465 AliHLTOnlineConfiguration.cxx:466 AliHLTOnlineConfiguration.cxx:467 AliHLTOnlineConfiguration.cxx:468 AliHLTOnlineConfiguration.cxx:469 AliHLTOnlineConfiguration.cxx:470 AliHLTOnlineConfiguration.cxx:471 AliHLTOnlineConfiguration.cxx:472 AliHLTOnlineConfiguration.cxx:473 AliHLTOnlineConfiguration.cxx:474 AliHLTOnlineConfiguration.cxx:475 AliHLTOnlineConfiguration.cxx:476 AliHLTOnlineConfiguration.cxx:477 AliHLTOnlineConfiguration.cxx:478 AliHLTOnlineConfiguration.cxx:479 AliHLTOnlineConfiguration.cxx:480 AliHLTOnlineConfiguration.cxx:481 AliHLTOnlineConfiguration.cxx:482 AliHLTOnlineConfiguration.cxx:483 AliHLTOnlineConfiguration.cxx:484 AliHLTOnlineConfiguration.cxx:485 AliHLTOnlineConfiguration.cxx:486 AliHLTOnlineConfiguration.cxx:487 AliHLTOnlineConfiguration.cxx:488 AliHLTOnlineConfiguration.cxx:489 AliHLTOnlineConfiguration.cxx:490 AliHLTOnlineConfiguration.cxx:491 AliHLTOnlineConfiguration.cxx:492 AliHLTOnlineConfiguration.cxx:493 AliHLTOnlineConfiguration.cxx:494 AliHLTOnlineConfiguration.cxx:495 AliHLTOnlineConfiguration.cxx:496 AliHLTOnlineConfiguration.cxx:497 AliHLTOnlineConfiguration.cxx:498 AliHLTOnlineConfiguration.cxx:499 AliHLTOnlineConfiguration.cxx:500 AliHLTOnlineConfiguration.cxx:501 AliHLTOnlineConfiguration.cxx:502 AliHLTOnlineConfiguration.cxx:503 AliHLTOnlineConfiguration.cxx:504 AliHLTOnlineConfiguration.cxx:505 AliHLTOnlineConfiguration.cxx:506 AliHLTOnlineConfiguration.cxx:507 AliHLTOnlineConfiguration.cxx:508 AliHLTOnlineConfiguration.cxx:509 AliHLTOnlineConfiguration.cxx:510 AliHLTOnlineConfiguration.cxx:511 AliHLTOnlineConfiguration.cxx:512 AliHLTOnlineConfiguration.cxx:513 AliHLTOnlineConfiguration.cxx:514 AliHLTOnlineConfiguration.cxx:515 AliHLTOnlineConfiguration.cxx:516 AliHLTOnlineConfiguration.cxx:517 AliHLTOnlineConfiguration.cxx:518 AliHLTOnlineConfiguration.cxx:519 AliHLTOnlineConfiguration.cxx:520 AliHLTOnlineConfiguration.cxx:521 AliHLTOnlineConfiguration.cxx:522 AliHLTOnlineConfiguration.cxx:523 AliHLTOnlineConfiguration.cxx:524 AliHLTOnlineConfiguration.cxx:525 AliHLTOnlineConfiguration.cxx:526 AliHLTOnlineConfiguration.cxx:527 AliHLTOnlineConfiguration.cxx:528 AliHLTOnlineConfiguration.cxx:529 AliHLTOnlineConfiguration.cxx:530 AliHLTOnlineConfiguration.cxx:531 AliHLTOnlineConfiguration.cxx:532 AliHLTOnlineConfiguration.cxx:533 AliHLTOnlineConfiguration.cxx:534 AliHLTOnlineConfiguration.cxx:535 AliHLTOnlineConfiguration.cxx:536 AliHLTOnlineConfiguration.cxx:537 AliHLTOnlineConfiguration.cxx:538 AliHLTOnlineConfiguration.cxx:539 AliHLTOnlineConfiguration.cxx:540 AliHLTOnlineConfiguration.cxx:541 AliHLTOnlineConfiguration.cxx:542 AliHLTOnlineConfiguration.cxx:543 AliHLTOnlineConfiguration.cxx:544 AliHLTOnlineConfiguration.cxx:545 AliHLTOnlineConfiguration.cxx:546 AliHLTOnlineConfiguration.cxx:547 AliHLTOnlineConfiguration.cxx:548 AliHLTOnlineConfiguration.cxx:549 AliHLTOnlineConfiguration.cxx:550 AliHLTOnlineConfiguration.cxx:551 AliHLTOnlineConfiguration.cxx:552 AliHLTOnlineConfiguration.cxx:553 AliHLTOnlineConfiguration.cxx:554 AliHLTOnlineConfiguration.cxx:555 AliHLTOnlineConfiguration.cxx:556 AliHLTOnlineConfiguration.cxx:557 AliHLTOnlineConfiguration.cxx:558 AliHLTOnlineConfiguration.cxx:559 AliHLTOnlineConfiguration.cxx:560 AliHLTOnlineConfiguration.cxx:561 AliHLTOnlineConfiguration.cxx:562 AliHLTOnlineConfiguration.cxx:563 AliHLTOnlineConfiguration.cxx:564 AliHLTOnlineConfiguration.cxx:565 AliHLTOnlineConfiguration.cxx:566 AliHLTOnlineConfiguration.cxx:567 AliHLTOnlineConfiguration.cxx:568