#if __GNUC__>= 3
using namespace std;
#endif
#include "unistd.h"
#include "AliHLTTriggerDecision.h"
#include "AliEveHOMERManager.h"
#include "AliHLTHOMERBlockDesc.h"
#include "AliHLTHOMERManager.h"
#include "AliEveHOMERSourceList.h"
#include "TTimer.h"
ClassImp(AliEveHOMERManager)
AliEveHOMERManager::AliEveHOMERManager() :
TEveElementList("Homer Manager"),
AliHLTHOMERManager(),
fSrcList(NULL),
fRetryCount(1000),
fRetrySleeptime(15),
fSourceListTimer(NULL)
{
fSourceListTimer = new TTimer();
fSourceListTimer->Connect("Timeout()", "AliEveHOMERManager", this, "CreateEveSourcesListLoop()");
}
AliEveHOMERManager::~AliEveHOMERManager() {
if (fSrcList)
delete fSrcList;
fSrcList = NULL;
}
Int_t AliEveHOMERManager::CreateEveSourcesList() {
DestroyElements();
Int_t iResult = CreateSourcesList();
fStateHasChanged = kTRUE;
HLTDebug(Form("iResult XXX %d", iResult));
if ( iResult )
return iResult;
HLTDebug(Form("iResult %d", iResult));
if (fSrcList) {
HLTInfo("delete source list");
DestroyElements();
fSrcList = NULL;
HLTInfo("cleared source list");
}
if(!fSrcList){
HLTInfo("no source list");
fSrcList = new AliEveHOMERSourceList("HLT Sources");
fSrcList->SetManager(this);
AddElement(fSrcList);
}
fSrcList->CreateByDet();
HLTDebug(Form("Done creating source list %d", iResult));
return iResult;
}
void AliEveHOMERManager::StartEveSourceListLoop() {
HLTInfo("Starting source list timer");
fSourceListTimer->Start(5000);
}
void AliEveHOMERManager::StopEveSourceListLoop() {
fSourceListTimer->Stop();
}
Int_t AliEveHOMERManager::CreateEveSourcesListLoop() {
HLTInfo("Attempting to create source list");
Int_t iResult = CreateEveSourcesList();
if (!iResult) {
HLTInfo("Source list successfully created.");
StopEveSourceListLoop();
HLTInfo("Conneting to sources");
return ConnectEVEtoHOMER();
}
else if (iResult == 1) {
HLTWarning( Form("Couldn't find active services,"));
} else if (iResult == 2) {
HLTWarning( Form("Services List empty, sleeping %d s before making new attempt.", fRetrySleeptime) ) ;
} else {
HLTError( Form("Other problem ... \n") );
}
return iResult;
}
Int_t AliEveHOMERManager::ConnectEVEtoHOMER( TString detector ) {
HLTInfo("");
fStateHasChanged = fSrcList->GetSelectedSources();
HLTInfo(Form("has state changed % d", fStateHasChanged));
return ConnectHOMER(detector);
}
Int_t AliEveHOMERManager::ReConnectHOMER( TString ){
Int_t iResult = 0;
if (Connected()) DisconnectHOMER();
CreateEveSourcesListLoop();
return iResult;
}
TList * AliEveHOMERManager::NextHOMEREvent() {
if(!Connected()) {
HLTInfo("Homer is not connected, trying to reconnect!");
ReConnectHOMER();
return NULL;
}
if ( NextEvent() ) {
HLTInfo("Failed getting next event, trying to reconnect");
ReConnectHOMER();
return NULL;
}
return GetBlockList();
}
AliEveHOMERManager.cxx:10 AliEveHOMERManager.cxx:11 AliEveHOMERManager.cxx:12 AliEveHOMERManager.cxx:13 AliEveHOMERManager.cxx:14 AliEveHOMERManager.cxx:15 AliEveHOMERManager.cxx:16 AliEveHOMERManager.cxx:17 AliEveHOMERManager.cxx:18 AliEveHOMERManager.cxx:19 AliEveHOMERManager.cxx:20 AliEveHOMERManager.cxx:21 AliEveHOMERManager.cxx:22 AliEveHOMERManager.cxx:23 AliEveHOMERManager.cxx:24 AliEveHOMERManager.cxx:25 AliEveHOMERManager.cxx:26 AliEveHOMERManager.cxx:27 AliEveHOMERManager.cxx:28 AliEveHOMERManager.cxx:29 AliEveHOMERManager.cxx:30 AliEveHOMERManager.cxx:31 AliEveHOMERManager.cxx:32 AliEveHOMERManager.cxx:33 AliEveHOMERManager.cxx:34 AliEveHOMERManager.cxx:35 AliEveHOMERManager.cxx:36 AliEveHOMERManager.cxx:37 AliEveHOMERManager.cxx:38 AliEveHOMERManager.cxx:39 AliEveHOMERManager.cxx:40 AliEveHOMERManager.cxx:41 AliEveHOMERManager.cxx:42 AliEveHOMERManager.cxx:43 AliEveHOMERManager.cxx:44 AliEveHOMERManager.cxx:45 AliEveHOMERManager.cxx:46 AliEveHOMERManager.cxx:47 AliEveHOMERManager.cxx:48 AliEveHOMERManager.cxx:49 AliEveHOMERManager.cxx:50 AliEveHOMERManager.cxx:51 AliEveHOMERManager.cxx:52 AliEveHOMERManager.cxx:53 AliEveHOMERManager.cxx:54 AliEveHOMERManager.cxx:55 AliEveHOMERManager.cxx:56 AliEveHOMERManager.cxx:57 AliEveHOMERManager.cxx:58 AliEveHOMERManager.cxx:59 AliEveHOMERManager.cxx:60 AliEveHOMERManager.cxx:61 AliEveHOMERManager.cxx:62 AliEveHOMERManager.cxx:63 AliEveHOMERManager.cxx:64 AliEveHOMERManager.cxx:65 AliEveHOMERManager.cxx:66 AliEveHOMERManager.cxx:67 AliEveHOMERManager.cxx:68 AliEveHOMERManager.cxx:69 AliEveHOMERManager.cxx:70 AliEveHOMERManager.cxx:71 AliEveHOMERManager.cxx:72 AliEveHOMERManager.cxx:73 AliEveHOMERManager.cxx:74 AliEveHOMERManager.cxx:75 AliEveHOMERManager.cxx:76 AliEveHOMERManager.cxx:77 AliEveHOMERManager.cxx:78 AliEveHOMERManager.cxx:79 AliEveHOMERManager.cxx:80 AliEveHOMERManager.cxx:81 AliEveHOMERManager.cxx:82 AliEveHOMERManager.cxx:83 AliEveHOMERManager.cxx:84 AliEveHOMERManager.cxx:85 AliEveHOMERManager.cxx:86 AliEveHOMERManager.cxx:87 AliEveHOMERManager.cxx:88 AliEveHOMERManager.cxx:89 AliEveHOMERManager.cxx:90 AliEveHOMERManager.cxx:91 AliEveHOMERManager.cxx:92 AliEveHOMERManager.cxx:93 AliEveHOMERManager.cxx:94 AliEveHOMERManager.cxx:95 AliEveHOMERManager.cxx:96 AliEveHOMERManager.cxx:97 AliEveHOMERManager.cxx:98 AliEveHOMERManager.cxx:99 AliEveHOMERManager.cxx:100 AliEveHOMERManager.cxx:101 AliEveHOMERManager.cxx:102 AliEveHOMERManager.cxx:103 AliEveHOMERManager.cxx:104 AliEveHOMERManager.cxx:105 AliEveHOMERManager.cxx:106 AliEveHOMERManager.cxx:107 AliEveHOMERManager.cxx:108 AliEveHOMERManager.cxx:109 AliEveHOMERManager.cxx:110 AliEveHOMERManager.cxx:111 AliEveHOMERManager.cxx:112 AliEveHOMERManager.cxx:113 AliEveHOMERManager.cxx:114 AliEveHOMERManager.cxx:115 AliEveHOMERManager.cxx:116 AliEveHOMERManager.cxx:117 AliEveHOMERManager.cxx:118 AliEveHOMERManager.cxx:119 AliEveHOMERManager.cxx:120 AliEveHOMERManager.cxx:121 AliEveHOMERManager.cxx:122 AliEveHOMERManager.cxx:123 AliEveHOMERManager.cxx:124 AliEveHOMERManager.cxx:125 AliEveHOMERManager.cxx:126 AliEveHOMERManager.cxx:127 AliEveHOMERManager.cxx:128 AliEveHOMERManager.cxx:129 AliEveHOMERManager.cxx:130 AliEveHOMERManager.cxx:131 AliEveHOMERManager.cxx:132 AliEveHOMERManager.cxx:133 AliEveHOMERManager.cxx:134 AliEveHOMERManager.cxx:135 AliEveHOMERManager.cxx:136 AliEveHOMERManager.cxx:137 AliEveHOMERManager.cxx:138 AliEveHOMERManager.cxx:139 AliEveHOMERManager.cxx:140 AliEveHOMERManager.cxx:141 AliEveHOMERManager.cxx:142 AliEveHOMERManager.cxx:143 AliEveHOMERManager.cxx:144 AliEveHOMERManager.cxx:145 AliEveHOMERManager.cxx:146 AliEveHOMERManager.cxx:147 AliEveHOMERManager.cxx:148 AliEveHOMERManager.cxx:149 AliEveHOMERManager.cxx:150 AliEveHOMERManager.cxx:151 AliEveHOMERManager.cxx:152 AliEveHOMERManager.cxx:153 AliEveHOMERManager.cxx:154 AliEveHOMERManager.cxx:155 AliEveHOMERManager.cxx:156 AliEveHOMERManager.cxx:157 AliEveHOMERManager.cxx:158 AliEveHOMERManager.cxx:159 AliEveHOMERManager.cxx:160 AliEveHOMERManager.cxx:161 AliEveHOMERManager.cxx:162 AliEveHOMERManager.cxx:163 AliEveHOMERManager.cxx:164 AliEveHOMERManager.cxx:165 AliEveHOMERManager.cxx:166 AliEveHOMERManager.cxx:167 AliEveHOMERManager.cxx:168 AliEveHOMERManager.cxx:169 AliEveHOMERManager.cxx:170 AliEveHOMERManager.cxx:171 AliEveHOMERManager.cxx:172 AliEveHOMERManager.cxx:173 AliEveHOMERManager.cxx:174 AliEveHOMERManager.cxx:175 AliEveHOMERManager.cxx:176 AliEveHOMERManager.cxx:177 AliEveHOMERManager.cxx:178 AliEveHOMERManager.cxx:179 AliEveHOMERManager.cxx:180