1 #ifndef _ots_WorkLoopManager_h
2 #define _ots_WorkLoopManager_h
4 #include <toolbox/task/WorkLoop.h>
5 #include <xgi/Method.h>
6 #include <xoap/MessageReference.h>
14 class HttpXmlDocument;
20 typedef unsigned long long RequestNumber;
34 bool report(toolbox::task::WorkLoop* workLoop,
38 bool removeProcessedRequests(
void);
39 std::string getWorkLoopRequest(toolbox::task::WorkLoop* workLoop);
40 void translateWorkLoopName(toolbox::task::WorkLoop* workLoop,
45 xoap::MessageReference getMessage(toolbox::task::WorkLoop* workLoop);
48 const std::string cWorkLoopType_;
59 toolbox::task::WorkLoop* workLoop;
60 std::string workLoopName;
65 time_t requestStartTime;
66 time_t requestLastTimeChecked;
67 xoap::MessageReference message;
70 const xoap::MessageReference* message = 0);
71 bool removeWorkLoop(toolbox::task::WorkLoop* workLoop);
72 bool removeWorkLoop(RequestNumber requestNumber);
73 bool removeTimedOutRequests(
void);
74 std::string composeWorkLoopName(RequestNumber requestNumber, cgicc::Cgicc& cgi);
75 std::string composeWorkLoopName(RequestNumber requestNumber,
76 const xoap::MessageReference& message);
77 RequestNumber getWorkLoopRequestNumber(toolbox::task::WorkLoop* workLoop);
78 RequestNumber getWorkLoopRequestNumber(
79 std::string workLoopName);
84 std::string getWorkLoopRequest(std::string workLoopName);
89 std::map<RequestNumber, WorkLoopStruct> workLoops_;
90 toolbox::task::ActionSignature* job_;
91 unsigned long long requestNumber_;
92 std::string requestName_;