21 #include "../FairMQDevice.h" 22 #include "../FairMQLogger.h" 23 #include "../options/FairMQProgOptions.h" 39 uint64_t fMaxIterations;
40 uint64_t fNumIterations;
41 std::string fInChannelName;
45 fMaxIterations =
fConfig->GetValue<uint64_t>(
"max-iterations");
46 fInChannelName =
fConfig->GetValue<std::string>(
"in-channel");
54 LOG(info) <<
"Starting the benchmark and expecting to receive " << fMaxIterations <<
" messages.";
55 auto tStart = std::chrono::high_resolution_clock::now();
57 while (CheckCurrentState(RUNNING))
59 FairMQMessagePtr msg(dataInChannel.Transport()->CreateMessage());
61 if (dataInChannel.Receive(msg) >= 0)
63 if (fMaxIterations > 0)
65 if (fNumIterations >= fMaxIterations)
74 auto tEnd = std::chrono::high_resolution_clock::now();
76 LOG(info) <<
"Leaving RUNNING state. Received " << fNumIterations <<
" messages in " << std::chrono::duration<double, std::milli>(tEnd - tStart).count() <<
"ms.";
virtual void InitTask()
Definition: FairMQSink.h:43
virtual void Run()
Definition: FairMQSink.h:49
FairMQProgOptions * fConfig
Program options configuration.
Definition: FairMQDevice.h:422
Definition: FairMQChannel.h:24
Definition: FairMQSink.h:26
std::unordered_map< std::string, std::vector< FairMQChannel > > fChannels
Device channels.
Definition: FairMQDevice.h:421
Definition: FairMQDevice.h:44