hce-node application  1.4.3
HCE Hierarchical Cluster Engine node application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
DRCETaskRequestExecutor.cpp
Go to the documentation of this file.
1 #include "DRCEError.hpp"
2 #include "DRCEFileStream.hpp"
5 
6 namespace HCE
7 {
8 namespace drce
9 {
10 //-----------------------------------------------------------------------------
12  DRCENodeOptions& nodeOptions_,CustomMessage& message_, DRCEResourceMonitor& resourceMonitor_)
13 : asyncTaskQueue(asyncTaskQueue_), nodeOptions(nodeOptions_), message(message_), resourceMonitor(resourceMonitor_)
14 {
15 }
16 //-----------------------------------------------------------------------------
18 {
19  return getResultDataItem(taskRequest, nodeOptions, state);
20 }
21 //-----------------------------------------------------------------------------
23 {
24  return getResultDataItem(taskRequest.getTaskId(), taskRequest.getRequestType(), nodeOptions, state);
25 }
26 //-----------------------------------------------------------------------------
29 {
30  DRCEResultDataItem resultDataItem;
31  resultDataItem.setRequestId(taskId);
32  resultDataItem.setRequestType(requestType);
33  resultDataItem.setNodeName(nodeOptions.getNodeName());
34  resultDataItem.setNodeHost(nodeOptions.getNodeHost());
35  resultDataItem.setNodePort(nodeOptions.getNodePort());
36  resultDataItem.setState(static_cast<unsigned int>(state));
37  return resultDataItem;
38 }
39 //-----------------------------------------------------------------------------
41 {
42  return getResultDataItem(inputJsonMessage, nodeOptions, state);
43 }
44 //-----------------------------------------------------------------------------
46 {
47  DRCEResultDataItem resultDataItem;
48  resultDataItem.setRequestId(inputJsonMessage.getRequestId());
49  resultDataItem.setRequestType(inputJsonMessage.getRequestType());
50  resultDataItem.setNodeName(nodeOptions.getNodeName());
51  resultDataItem.setNodeHost(nodeOptions.getNodeHost());
52  resultDataItem.setNodePort(nodeOptions.getNodePort());
53  resultDataItem.setState(static_cast<unsigned int>(state));
54 
55  getSubtasks(inputJsonMessage, nodeOptions, resultDataItem);
56 
57  return resultDataItem;
58 }
59 //-----------------------------------------------------------------------------
60 void DRCETaskRequestExecutor::getSubtasks(const DRCEInputJsonMessage& inputJsonMessage, const DRCENodeOptions& nodeOptions, DRCEResultDataItem& resultDataItem)
61 {
62  for (size_t i=0;i<inputJsonMessage.getSubtasksCount();++i)
63  {
64  DRCEResultDataItem subtasksResultItem;
65  subtasksResultItem.setRequestId(inputJsonMessage.getSubtaskItem(i).getRequestId());
66  subtasksResultItem.setRequestType(inputJsonMessage.getRequestType());
67  subtasksResultItem.setState(static_cast<unsigned int>(DRCETaskRequest::TaskState::QUEUED_TO_RUN));
68  subtasksResultItem.setNodeName(nodeOptions.getNodeName());
69  subtasksResultItem.setNodeHost(nodeOptions.getNodeHost());
70  subtasksResultItem.setNodePort(nodeOptions.getNodePort());
71 
72  getSubtasks(inputJsonMessage.getSubtaskItem(i), nodeOptions, subtasksResultItem);
73 
74  resultDataItem.addSubtaskItem(std::forward<DRCEResultDataItem>(subtasksResultItem));
75  }
76 }
77 //-----------------------------------------------------------------------------
78 //-----------------------------------------------------------------------------
79 } // end namespace drce
80 } // end namespace HCE