artdaq  v3_00_01
NetMonTransportService.h
1 #ifndef artdaq_ArtModules_NetMonTransportService_h
2 #define artdaq_ArtModules_NetMonTransportService_h
3 
4 #include "art/Framework/Services/Registry/ServiceMacros.h"
5 
6 #include "artdaq/ArtModules/NetMonTransportServiceInterface.h"
7 #include "artdaq/DAQrate/DataSenderManager.hh"
8 #include "artdaq-core/Core/SharedMemoryEventReceiver.hh"
9 
10 // ----------------------------------------------------------------------
11 
17 {
18 public:
22  virtual ~NetMonTransportService();
23 
33  NetMonTransportService(fhicl::ParameterSet const& pset, art::ActivityRegistry&);
34 
40  void connect() override;
41 
47  void disconnect() override;
48 
52  void listen() override;
53 
60  void sendMessage(uint64_t sequenceId, uint8_t messageType, TBufferFile& msg) override;
61 
66  void receiveMessage(TBufferFile*& msg) override;
67 
68  void receiveInitMessage(TBufferFile*& msg) override;
69 
74  size_t dataReceiverCount() const { return sender_ptr_->destinationCount(); }
75 private:
76  fhicl::ParameterSet data_pset_;
77  bool init_received_;
78  double init_timeout_s_;
79 
80  std::unique_ptr<artdaq::DataSenderManager> sender_ptr_;
81  std::unique_ptr<artdaq::SharedMemoryEventReceiver> incoming_events_;
82  std::unique_ptr<std::vector<artdaq::Fragment>> recvd_fragments_;
83 };
84 
85 DECLARE_ART_SERVICE_INTERFACE_IMPL(NetMonTransportService, NetMonTransportServiceInterface, LEGACY)
86 #endif /* artdaq_ArtModules_NetMonTransportService_h */
87 
88 // Local Variables:
89 // mode: c++
90 // End:
void receiveInitMessage(TBufferFile *&msg) override
Receive the init message.
void sendMessage(uint64_t sequenceId, uint8_t messageType, TBufferFile &msg) override
Send ROOT data, wrapped in an artdaq::Fragment object.
NetMonTransportService extends NetMonTransportServiceInterface. It sends events using DataSenderManag...
void receiveMessage(TBufferFile *&msg) override
Receive data from the ConcurrentQueue.
size_t dataReceiverCount() const
Get the number of data receivers.
void connect() override
Reconnect the NetMonTransportService.
virtual ~NetMonTransportService()
NetMonTransportService Destructor. Calls disconnect().
NetMonTransportService(fhicl::ParameterSet const &pset, art::ActivityRegistry &)
NetMonTransportService Constructor.
void disconnect() override
Disconnects the NetMonTranportService.
Interface for NetMonTranportService. This interface is declared to art as part of the required regist...
void listen() override
Listen for connections. This method is a No-Op.