10 #ifndef WRENCH_ACTION_EXECUTOR_H
11 #define WRENCH_ACTION_EXECUTOR_H
15 #include "wrench/execution_controller/ExecutionController.h"
16 #include "wrench/services/Service.h"
17 #include "wrench/action/Action.h"
23 class ActionExecutionService;
32 class ActionExecutor :
public ExecutionController {
38 unsigned long num_cores,
40 simgrid::s4u::Mailbox *callback_mailbox,
41 std::shared_ptr<Action> action,
42 std::shared_ptr<ActionExecutionService> action_execution_service);
45 void kill(
bool job_termination);
46 void cleanup(
bool has_returned_from_main,
int return_value)
override;
48 std::shared_ptr<Action> getAction();
49 unsigned long getNumCoresAllocated()
const;
50 double getMemoryAllocated()
const;
52 std::shared_ptr<ActionExecutionService> getActionExecutionService()
const;
56 std::shared_ptr<Action> action;
57 std::shared_ptr<ActionExecutionService> action_execution_service;
58 simgrid::s4u::Mailbox *callback_mailbox;
59 bool killed_on_purpose;
61 unsigned long num_cores;
72 #endif //WRENCH_ACTION_EXECUTOR_H