hce-node application  1.4.3
HCE Hierarchical Cluster Engine node application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
DRCETaskRequestTerminateExecutor.hpp
Go to the documentation of this file.
1 
14 #ifndef DRCE_TASK_REQUEST_TERMINATE_EXECUTOR_HPP
15 #define DRCE_TASK_REQUEST_TERMINATE_EXECUTOR_HPP
16 
17 #include "DRCEError.hpp"
18 #include "DRCEMessageConst.hpp"
20 #include "DRCECommonTask.hpp"
21 
22 namespace HCE
23 {
24 namespace drce
25 {
26 class DRCETaskRequestTerminate;
27 //-----------------------------------------------------------------------------
29 {
30 public:
32  DRCENodeOptions& nodeOptions_,
33  CustomMessage& message_,
34  DRCEResourceMonitor& resourceMonitor_);
36 
38  DRCEInputJsonMessage& inputJsonMessage);
39 
40  static void terminateExpiredTask(const AsyncTasks& asyncTask,
44 
45  static void executeTerminate(unsigned int taskId,
49  const std::string& errorMsg="",
50  unsigned int errorCode=0,
51  DRCETaskRequest::TaskState taskState=DRCETaskRequest::TaskState::TERMINATED);
52 private:
53  static void executeDefaultAlgorithm(DRCETaskRequestTerminate& taskRequestTerminate,
54  pid_t pid,
58  DRCEResultDataItem& resultDataItem) throw (Poco::Exception);
59 
60  static void executeCustomAlgorithm(DRCETaskRequestTerminate& taskRequestTerminate,
61  pid_t pid,
65  DRCEResultDataItem& resultDataItem) throw (Poco::Exception);
66 
67  static bool loadStatusFile(DRCEAsyncTasksQueue& asyncTaskQueue,
70  DRCEResultDataItem& resultDataItem);
71 
72  static void terminateTask(unsigned int taskId,
73  DRCETaskRequestTerminate& taskRequestTerminate,
77  DRCEResultDataItem& resultDataItem,
78  const std::string& errorMsg="",
79  unsigned int errorCode=0,
80  DRCETaskRequest::TaskState taskState=DRCETaskRequest::TaskState::TERMINATED) throw (Poco::Exception);
81 
82  DRCEResultDataItem makeResultDataItem(DRCEInputJsonMessage& inputJsonMessage,
83  unsigned int exitStatus=0);
84 
85  void prepareCleanup(unsigned int taskId,
86  DRCEInputJsonMessage& inputJsonMessage);
87 
89  DRCEInputJsonMessage& inputJsonMessage,
90  DRCEAsyncTasksQueue& asyncTaskQueue,
91  DRCENodeOptions& nodeOptions,
92  CustomMessage& message,
93  const std::string& errorMsg="",
94  unsigned int errorCode=0,
95  DRCETaskRequest::TaskState taskState=DRCETaskRequest::TaskState::TERMINATED);
96 
97  typedef DRCETaskRequestExecutor inherited;
98 };
99 //-----------------------------------------------------------------------------
100 //-----------------------------------------------------------------------------
101 } // end namespace drce
102 } // end namespace HCE
103 
104 #endif // DRCE_TASK_REQUEST_TERMINATE_EXECUTOR_HPP