1 #ifndef _ots_WorkLoopManager_h
2 #define _ots_WorkLoopManager_h
4 #include <toolbox/task/WorkLoop.h>
5 #pragma GCC diagnostic push
6 #pragma GCC diagnostic ignored "-Wunknown-pragmas"
7 #include <xgi/Method.h>
8 #pragma GCC diagnostic pop
9 #include <xoap/MessageReference.h>
17 class HttpXmlDocument;
23 typedef unsigned long long RequestNumber;
37 bool report(toolbox::task::WorkLoop* workLoop,
41 bool removeProcessedRequests(
void);
42 std::string getWorkLoopRequest(toolbox::task::WorkLoop* workLoop);
43 void translateWorkLoopName(toolbox::task::WorkLoop* workLoop,
48 xoap::MessageReference getMessage(toolbox::task::WorkLoop* workLoop);
51 const std::string cWorkLoopType_;
52 static constexpr
int maxWorkLoops = 5;
53 static constexpr
int timeOutInSeconds = 20;
56 toolbox::task::WorkLoop* workLoop;
57 std::string workLoopName;
62 time_t requestStartTime;
63 time_t requestLastTimeChecked;
64 xoap::MessageReference message;
67 const xoap::MessageReference* message = 0);
68 bool removeWorkLoop(toolbox::task::WorkLoop* workLoop);
69 bool removeWorkLoop(RequestNumber requestNumber);
70 bool removeTimedOutRequests(
void);
71 std::string composeWorkLoopName(RequestNumber requestNumber, cgicc::Cgicc& cgi);
72 std::string composeWorkLoopName(RequestNumber requestNumber,
73 const xoap::MessageReference& message);
74 RequestNumber getWorkLoopRequestNumber(toolbox::task::WorkLoop* workLoop);
75 RequestNumber getWorkLoopRequestNumber(std::string workLoopName);
80 std::string getWorkLoopRequest(std::string workLoopName);
85 std::map<RequestNumber, WorkLoopStruct> workLoops_;
86 toolbox::task::ActionSignature* job_;
87 unsigned long long requestNumber_;
88 std::string requestName_;
HttpXmlDocument processRequest(cgicc::Cgicc &cgi)
bool getRequestResult(cgicc::Cgicc &cgi, HttpXmlDocument &xmldoc)
Getters.