artdaq  v3_09_00
requestReceiver.cc
1 #define TRACE_NAME "requestReceiver"
2 
3 #include <boost/program_options.hpp>
4 #include "fhiclcpp/make_ParameterSet.h"
5 
6 #include "artdaq-core/Utilities/configureMessageFacility.hh"
7 #include "artdaq/Application/LoadParameterSet.hh"
8 #include "artdaq/DAQrate/RequestReceiver.hh"
9 #include "artdaq/DAQrate/RequestBuffer.hh"
10 
11 int main(int argc, char* argv[])
12 try
13 {
14  artdaq::configureMessageFacility("requestReceiver");
15 
16  auto pset = LoadParameterSet<artdaq::RequestReceiver::Config>(argc, argv, "receiver", "This is a simple application which listens for Data Request messages and prints their contents");
17 
18  int rc = 0;
19 
20  fhicl::ParameterSet tempPset;
21  if (pset.has_key("request_receiver"))
22  {
23  tempPset = pset.get<fhicl::ParameterSet>("request_receiver");
24  }
25  else
26  {
27  tempPset = pset;
28  }
29 
30  auto buffer = std::make_shared<artdaq::RequestBuffer>(tempPset.get<artdaq::Fragment::sequence_id_t>("request_increment", 1));
31  artdaq::RequestReceiver recvr(tempPset, buffer);
32  recvr.startRequestReception();
33 
34 
35  while (true)
36  {
37  for (auto req : buffer->GetAndClearRequests())
38  {
39  TLOG(TLVL_INFO) << "Received Request for Sequence ID " << req.first << ", timestamp " << req.second;
40  }
41  usleep(10000);
42  }
43 
44  return rc;
45 }
46 catch (...)
47 {
48  return -1;
49 }
Receive data requests and make them available to CommandableFragmentGenerator or other interested par...