1 #ifndef _ots_CodeEditor_h_
2 #define _ots_CodeEditor_h_
4 #include "otsdaq-core/Macros/CoutMacros.h"
5 #include "otsdaq-core/Macros/StringMacros.h"
6 #include "otsdaq-core/MessageFacility/MessageFacility.h"
7 #include "otsdaq-core/SOAPUtilities/SOAPMessenger.h"
8 #include "xgi/Method.h"
12 #include <unordered_map>
17 class HttpXmlDocument;
27 void xmlRequest(
const std::string& option,
30 const std::string& username);
34 void getPathContent(
const std::string& basepath,
35 const std::string& path,
38 void saveFileContent(cgicc::Cgicc& cgiIn,
40 const std::string& username);
41 void build(cgicc::Cgicc& cgiIn,
HttpXmlDocument* xmlOut,
const std::string& username);
43 std::string safePathString(
const std::string& path);
44 std::string safeExtensionString(
const std::string& extension);
47 static const std::string SPECIAL_TYPE_FEInterface, SPECIAL_TYPE_DataProcessor,
48 SPECIAL_TYPE_Table, SPECIAL_TYPE_ControlsInterface, SPECIAL_TYPE_Tools,
49 SPECIAL_TYPE_UserData, SPECIAL_TYPE_OutputData;
51 static const std::string SOURCE_BASE_PATH, USER_DATA_PATH, OTSDAQ_DATA_PATH;
53 static std::map<std::string ,
54 std::set<std::string> >
57 static void readFile(
const std::string& basepath,
58 const std::string& path,
59 std::string& contents);
60 static void writeFile(
const std::string& basepath,
61 const std::string& path,
62 const std::string& contents,
63 const std::string& username,
64 const unsigned long long& insertPos = -1,
65 const std::string& insertString =
"");
67 const std::set<std::string> ALLOWED_FILE_EXTENSIONS_;