otsdaq  v2_05_02_indev
FESupervisor.h
1 #ifndef _ots_FESupervisor_h_
2 #define _ots_FESupervisor_h_
3 
4 #include "otsdaq/CoreSupervisors/CoreSupervisorBase.h"
5 
6 namespace ots
7 {
8 class FEVInterfacesManager;
9 
10 // FESupervisor
11 // This class handles a collection of front-end interface plugins. It
12 // provides an interface to Macro Maker for writes and reads to the front-end interfaces.
14 {
15  // friend FEVInterface;
16 
17  public:
18  XDAQ_INSTANTIATOR();
19 
20  FESupervisor(xdaq::ApplicationStub* s);
21  virtual ~FESupervisor(void);
22 
23  xoap::MessageReference frontEndCommunicationRequest(xoap::MessageReference message);
24  xoap::MessageReference macroMakerSupervisorRequest(xoap::MessageReference message);
25  virtual xoap::MessageReference workLoopStatusRequest(xoap::MessageReference message) override;
26 
27  virtual void transitionConfiguring(toolbox::Event::Reference event) override;
28  virtual void transitionHalting(toolbox::Event::Reference event) override;
29 
30  protected:
31  FEVInterfacesManager* theFEInterfacesManager_;
32 
33  private:
34  FEVInterfacesManager* extractFEInterfacesManager(); // likely, just used in constructor
35 };
36 
37 } // namespace ots
38 
39 #endif