4 #include <experimental/memory>
6 #include <shared_mutex>
13 #include "../FluxioControlNode.h"
14 #include "../FluxioParameter.h"
15 #include "../FluxioParameterNode.h"
16 #include "../FluxioSkill.h"
17 #include "../FluxioSkillStatusUpdate.h"
18 #include "../FluxioSubSkillNode.h"
19 #include "../SkillExecutionID.h"
20 #include "../SkillStatusUpdate.h"
29 const std::string&
id,
31 const std::function<
void(
const std::string& executionId)>&& abortFluxioSkillFunc,
34 const std::string& skillId,
35 const std::string& profileId,
39 const std::vector<std::string>& parameterIds)>&& addMergerExecutorToDCFunc);
44 void abort()
override;
45 std::optional<std::vector<skills::FluxioSkillStatusUpdate>>
getStatusUpdate()
override;
52 std::atomic_bool& running,
56 void handleParameterRoutine(
58 std::atomic_bool& running,
61 void handleSubSkillRoutine(
63 std::atomic_bool& running,
67 void handleControlRoutine(
70 std::atomic_bool& running,
74 void abortSubExecutions();
79 void pollSubStatuses();
81 const std::function<void(
const std::string& executionId)> abortFluxioSkill;
83 const std::function<skills::Result<std::experimental::observer_ptr<FluxioExecutor>,
85 const std::string& skillId,
86 const std::string& profileId,
91 const std::function<std::experimental::observer_ptr<FluxioExecutor>(
92 const std::vector<std::string>& parameterIds)>
93 addMergerExecutorToDC;
95 std::optional<skills::SkillExecutionID> executionId = std::nullopt;
97 std::map<std::string, std::experimental::observer_ptr<FluxioExecutor>>
99 std::shared_mutex subExecutionsMapMutex;