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