1 #ifndef _ots_MacroMakerSupervisor_h_
2 #define _ots_MacroMakerSupervisor_h_
4 #include "otsdaq/CoreSupervisors/CoreSupervisorBase.h"
23 virtual void request(
const std::string& requestType,
25 HttpXmlDocument& xmlOut,
26 const WebUsers::RequestUserInfo& userInfo)
override;
35 void generateURL(
void);
36 void verification(xgi::Input* in, xgi::Output* out);
37 void requestIcons(xgi::Input* in, xgi::Output* out);
38 void tooltipRequest(xgi::Input* in, xgi::Output* out);
39 void requestWrapper(xgi::Input* in, xgi::Output* out);
44 void handleRequest(
const std::string Command,
45 HttpXmlDocument& xmldoc,
47 const WebUsers::RequestUserInfo& userInfo);
49 xoap::MessageReference frontEndCommunicationRequest(xoap::MessageReference message);
50 xoap::MessageReference supervisorSequenceCheck(xoap::MessageReference message);
52 void getFElist(HttpXmlDocument& xmldoc);
53 void getFEMacroList(HttpXmlDocument& xmldoc,
const std::string& username);
55 void writeData(HttpXmlDocument& xmldoc,
57 const std::string& username);
58 void readData(HttpXmlDocument& xmldoc,
60 const std::string& username);
61 void createMacro(HttpXmlDocument& xmldoc,
63 const std::string& username);
64 void loadMacro(
const std::string& macroName,
65 std::string& macroString,
66 const std::string& username =
"");
67 void loadMacros(HttpXmlDocument& xmldoc,
const std::string& username);
69 const std::string& username,
70 std::pair<std::vector<std::string> ,
71 std::vector<std::string> >& returnMacroNames);
72 void appendCommandToHistory(std::string command,
75 std::string interfaces,
76 const std::string& username);
77 void appendCommandToHistory(std::string feClass,
79 std::string macroType,
80 std::string macroName,
81 std::string inputArgs,
82 std::string outputArgs,
84 const std::string& username);
85 void loadFEMacroSequences(HttpXmlDocument& xmldoc,
const std::string& username);
86 void saveFEMacroSequence(cgicc::Cgicc& cgi,
const std::string& username);
87 void getFEMacroSequence(HttpXmlDocument& xmldoc,
89 const std::string& username);
90 void runFEMacroSequence(HttpXmlDocument& xmldoc,
92 const std::string& username);
93 void deleteFEMacroSequence(cgicc::Cgicc& cgi,
const std::string& username);
94 void loadHistory(HttpXmlDocument& xmldoc,
const std::string& username);
95 void loadFEHistory(HttpXmlDocument& xmldoc,
const std::string& username);
96 void deleteMacro(HttpXmlDocument& xmldoc,
98 const std::string& username);
99 void editMacro(HttpXmlDocument& xmldoc,
101 const std::string& username);
102 void clearHistory(
const std::string& username);
103 void clearFEHistory(
const std::string& username);
104 void exportMacro(HttpXmlDocument& xmldoc,
106 const std::string& username);
107 void exportFEMacro(HttpXmlDocument& xmldoc,
109 const std::string& username);
110 void runFEMacro(HttpXmlDocument& xmldoc,
112 const WebUsers::RequestUserInfo& userInfo);
113 void runFEMacro(HttpXmlDocument& xmldoc,
114 std::string feClassSelected,
115 std::string feUIDSelected,
116 const std::string& macroType,
117 const std::string& macroName,
118 const std::string& inputArgs,
119 const std::string outputArgs,
121 const std::string& username,
122 const std::string& userGroupPermissions);
124 std::string generateHexArray(
const std::string& sourceHexString,
int& numOfBytes);
125 bool isArgumentVariable(
const std::string& argumentString);
126 void createCode(std::ostream& out,
127 const std::vector<std::string>& commands,
128 const std::string& tabOffset =
"",
129 bool forFeMacro =
false,
130 std::set<std::string>* inArgNames = 0,
131 std::set<std::string>* outArgNames = 0);
133 SupervisorInfoMap allFESupervisorInfo_;
134 std::map<std::string ,
unsigned int >
136 std::map<std::string , std::set<std::string> >
137 FEPluginTypetoFEsMap_;
138 std::map<std::string , std::string > FEtoPluginTypeMap_;
140 std::string securityCode_;
141 bool defaultSequence_;
143 std::map<std::string , std::vector<std::string> >
144 lastFeCommandToHistory_;
virtual void forceSupervisorPropertyValues(void) override