otsdaq  3.06.00
FESupervisor.h
1 #ifndef _ots_FESupervisor_h_
2 #define _ots_FESupervisor_h_
3 
4 #include "otsdaq/CoreSupervisors/CoreSupervisorBase.h"
5 
6 #include "zmq.hpp"
7 
8 namespace ots
9 {
10 class FEVInterfacesManager;
11 
21 {
22  // friend FEVInterface;
23 
24  public:
25  XDAQ_INSTANTIATOR();
26 
27  FESupervisor(xdaq::ApplicationStub* s);
28  virtual ~FESupervisor(void);
29 
30  xoap::MessageReference frontEndCommunicationRequest(xoap::MessageReference message);
31  xoap::MessageReference macroMakerSupervisorRequest(xoap::MessageReference message);
32  virtual xoap::MessageReference workLoopStatusRequest(
33  xoap::MessageReference message) override;
34 
35  virtual void transitionConfiguring(toolbox::Event::Reference event) override;
36  virtual void transitionHalting(toolbox::Event::Reference event) override;
37 
48  void publishData(const char* dataPtr, size_t dataSize);
49  bool isPublishingData() const { return dp_isInitialized_; }
50 
51  protected:
52  FEVInterfacesManager* theFEInterfacesManager_;
53 
64  void initDataPublishing(const std::string& endpoint,
65  const std::string& topic = "test");
66 
70  void closeDataPublishing(bool alsoCloseContext = true);
71 
72  private:
74  extractFEInterfacesManager();
75 
76  // ZeroMQ Publisher
77  zmq::context_t dp_context_;
78  zmq::socket_t dp_socket_;
79  std::string dp_endpoint_;
80  std::string dp_topic_;
81  bool dp_isInitialized_ = false;
82 };
83 
84 } // namespace ots
85 
86 #endif
void publishData(const char *dataPtr, size_t dataSize)
virtual void transitionHalting(toolbox::Event::Reference event) override
void initDataPublishing(const std::string &endpoint, const std::string &topic="test")
void closeDataPublishing(bool alsoCloseContext=true)
xoap::MessageReference macroMakerSupervisorRequest(xoap::MessageReference message)
defines used also by OtsConfigurationWizardSupervisor