#include "AliDIMListenerThread.h" #include "AliStorageTypes.h" #include #include #include using namespace std; AliDIMListenerThread::AliDIMListenerThread() : fDimSORListener(0), fDimEORListener(0), fOnlineReconstructionHostname(""), fOnlineReconstructionUsername("") { ifstream configFile (GetConfigFilePath()); if (configFile.is_open()) { string line; int from,to; while(configFile.good()) { getline(configFile,line); from = line.find("\"")+1; to = line.find_last_of("\""); if(line.find("EVENT_SERVER=")==0){fOnlineReconstructionHostname=line.substr(from,to-from);} else if(line.find("EVENT_SERVER_USER=")==0){fOnlineReconstructionUsername=line.substr(from,to-from);} } if(configFile.eof()){configFile.clear();} configFile.close(); } else{cout<<"AliDIMListenerThread -- Unable to open config file"<Exec(Form("ssh -n -f %s@%s \"killall alionlinereco\"",fOnlineReconstructionUsername.c_str(),fOnlineReconstructionHostname.c_str())); /* for (int i = 0; i < 5; ++i){ if(fDimSORListener[i]) delete fDimSORListener[i]; if(fDimEORListener[i]) delete fDimEORListener[i]; fDimSORListener[i] = 0; fDimEORListener[i] = 0; }*/ cout<<"OK"<Connect("DimMessage(int)", "AliDIMListenerThread", this, "StartOfRun(int)"); fDimEORListener[i]->Connect("DimMessage(int)", "AliDIMListenerThread", this, "EndOfRun(int)"); } */ fDimSORListener = new AliDimIntNotifier("/LOGBOOK/SUBSCRIBE/DAQ_SOR_PHYSICS_1"); fDimEORListener = new AliDimIntNotifier("/LOGBOOK/SUBSCRIBE/DAQ_EOR_PHYSICS_1"); fDimSORListener->Connect("DimMessage(int)", "AliDIMListenerThread", this, "StartOfRun(int)"); fDimEORListener->Connect("DimMessage(int)", "AliDIMListenerThread", this, "EndOfRun(int)"); #endif } void AliDIMListenerThread::StartOfRun(int run) { cout<<"AliDIMListenerThread -- SOR signal received for run:"<Exec(Form("ssh -n -f %s@%s \". ~/EventServerTesting/setEnv.sh;killall alionlinereco;alionlinereco %d\"",fOnlineReconstructionUsername.c_str(),fOnlineReconstructionHostname.c_str(),run)); } void AliDIMListenerThread::EndOfRun(int run) { cout<<"AliDIMListenerThread -- EOR signal received for run:"<Exec(Form("ssh -n -f %s@%s \"killall alionlinereco\"",fOnlineReconstructionUsername.c_str(),fOnlineReconstructionHostname.c_str())); }