otsdaq_utilities  v2_02_00
ControlsDashboardSupervisor.h
1 #ifndef _ots_ControlsDashboardSupervisor_h_
2 #define _ots_ControlsDashboardSupervisor_h_
3 
4 #include "otsdaq-core/CoreSupervisors/CoreSupervisorBase.h"
5 
6 //#include "otsdaq-utilities/SlowControlsInterfacePlugins/EpicsInterface.h"
7 //#include "EpicsInterface.h.bkup"
8 
9 
10 
11 namespace ots
12 {
13 
14  class ControlsVInterface;
15  class ConfigurationManager;
16 
17 //ControlsDashboardSupervisor
18 // This class handles the management of slow controls interface plugins, as well as the user web interface
19 class ControlsDashboardSupervisor: public CoreSupervisorBase
20 {
21 
22 public:
23 
24  XDAQ_INSTANTIATOR();
25 
26  ControlsDashboardSupervisor (xdaq::ApplicationStub* s);
27  virtual ~ControlsDashboardSupervisor (void);
28 
29  void init (void);
30  void destroy (void);
31 
32 
33  virtual void request (const std::string& requestType, cgicc::Cgicc& cgiIn, HttpXmlDocument& xmlOut, const WebUsers::RequestUserInfo& userInfo) override;
34 
35  virtual void setSupervisorPropertyDefaults (void) override;
36  virtual void forceSupervisorPropertyValues (void) override; //override to force supervisor property values (and ignore user settings)
37 
38 
39  void Poll (cgicc::Cgicc& cgiIn, HttpXmlDocument& xmlOut, std::string UID) ;
40  void GetPVSettings (cgicc::Cgicc& cgiIn, HttpXmlDocument& xmlOut, std::string pvList);
41  void GenerateUID (cgicc::Cgicc& cgiIn, HttpXmlDocument& xmlOut, std::string pvlist);
42  void GetList (cgicc::Cgicc& cgiIn, HttpXmlDocument& xmlOut) ;
43  void GetPages (cgicc::Cgicc& cgiIn, HttpXmlDocument& xmlOut) ;
44  void loadPage (cgicc::Cgicc& cgiIn, HttpXmlDocument& xmlOut, std::string page) ;
45  void Subscribe (cgicc::Cgicc& cgiIn, HttpXmlDocument& xmlOut) ;
46  void Unsubscribe (cgicc::Cgicc& cgiIn, HttpXmlDocument& xmlOut) ;
47 
48 
49 
50  //Utilities, eventually to be moved
51  bool isDir (std::string dir );
52  void listFiles (std::string baseDir, bool recursive, std::vector<std::string> * pages );
53 
54 
55 private:
56  //SlowControlsInterface
57  //AllSupervisorInfo allSupervisorInfo_;
58  //EpicsInterface * interface_;
59  ControlsVInterface* interface_;
60 // ConfigurationManager* theConfigurationManager_;
61 // RemoteWebUsers theRemoteWebUsers_;
62 // std::string username;
63  std::map<int, std::set<std::string>> pvDependencyLookupMap_;
64  int UID_;
65 
66 
67 };
68 
69 }
70 
71 #endif