/** * FairMQSplitter.cxx * * @since 2012-12-06 * @author D. Klein, A. Rybalchenko */ #include #include #include "FairMQLogger.h" #include "FairMQSplitter.h" FairMQSplitter::FairMQSplitter() { } FairMQSplitter::~FairMQSplitter() { } void FairMQSplitter::Run() { FairMQLogger::GetInstance()->Log(FairMQLogger::INFO, ">>>>>>> Run <<<<<<<"); boost::thread rateLogger(boost::bind(&FairMQDevice::LogSocketRates, this)); bool received = false; int direction = 0; while ( fState == RUNNING ) { FairMQMessage msg; received = fPayloadInputs->at(0)->Receive(&msg); if (received) { fPayloadOutputs->at(direction)->Send(&msg); direction++; if (direction >= fNumOutputs) { direction = 0; } received = false; } } rateLogger.interrupt(); rateLogger.join(); }