21 #include "../FairMQDevice.h" 22 #include "../FairMQLogger.h" 40 uint64_t fMaxIterations;
41 uint64_t fNumIterations;
42 std::string fInChannelName;
56 LOG(info) <<
"Starting the benchmark and expecting to receive " << fMaxIterations <<
" messages.";
57 auto tStart = std::chrono::high_resolution_clock::now();
59 while (!NewStatePending())
65 if (dataInChannel.
Receive(parts) >= 0)
67 if (fMaxIterations > 0)
69 if (fNumIterations >= fMaxIterations)
71 LOG(info) <<
"Configured maximum number of iterations reached.";
80 FairMQMessagePtr msg(dataInChannel.NewMessage());
82 if (dataInChannel.
Receive(msg) >= 0)
84 if (fMaxIterations > 0)
86 if (fNumIterations >= fMaxIterations)
88 LOG(info) <<
"Configured maximum number of iterations reached.";
97 auto tEnd = std::chrono::high_resolution_clock::now();
99 LOG(info) <<
"Leaving RUNNING state. Received " << fNumIterations <<
" messages in " << std::chrono::duration<double, std::milli>(tEnd - tStart).count() <<
"ms.";
virtual void InitTask()
Task initialization (can be overloaded in child classes)
Definition: FairMQSink.h:44
T GetProperty(const std::string &key) const
Read config property, throw if no property with this key exists.
Definition: ProgOptions.h:65
int Receive(FairMQMessagePtr &msg, int rcvTimeoutInMs=-1)
Definition: FairMQChannel.h:266
fair::mq::ProgOptions * fConfig
Pointer to config (internal or external)
Definition: FairMQDevice.h:449
Definition: FairMQChannel.h:30
Definition: FairMQSink.h:25
std::unordered_map< std::string, std::vector< FairMQChannel > > fChannels
Device channels.
Definition: FairMQDevice.h:447
FairMQParts is a lightweight convenience wrapper around a vector of unique pointers to FairMQMessage...
Definition: FairMQParts.h:20
Definition: FairMQDevice.h:53
virtual void Run()
Runs the device (to be overloaded in child classes)
Definition: FairMQSink.h:51