85 std::optional<TerminatedSkillStatusUpdate>
join();
109 bool isJoined_ =
false;
116 operator bool()
const;
122 std::optional<armarx::skills::TerminatedSkillStatusUpdate>>;
128 template <
typename T>
135 template <
typename T>
142 template <
typename T>
149 JoinAllResult
joinAll(
const std::vector<armarx::skills::SkillExecutionHandle*>& handles);
154 template <
typename... Args>
159 (... && (std::is_convertible_v<decltype(to_raw_ptr(std::forward<Args>(args))),
161 "All arguments to joinAll must be SkillExecutionHandle pointers or smart "
164 std::vector<SkillExecutionHandle*> rawHandles{
to_raw_ptr(std::forward<Args>(args))...};
165 return static_cast<JoinAllResult (*)(
const std::vector<SkillExecutionHandle*>&)
>(
RAII handle for a running subskill.
bool abortAsync()
Request an asynchronous abort of the subskill.
std::optional< TerminatedSkillStatusUpdate > join()
Block until the subskill terminates and return its status.
~SkillExecutionHandle()
Destructor requests cleanup of the subskill.
SkillExecutionHandle(SkillProxyPtr proxy, skills::SkillExecutionID executionId)
Construct a handle for an executing subskill.
const skills::SkillExecutionID & executionId() const
std::optional< SkillStatusUpdate > getExecutionStatus()
Get the current execution status of the subskill.
JoinAllResult joinAll(const std::vector< armarx::skills::SkillExecutionHandle * > &handles)
JoinAllResult joinAllAny(Args &&... args)
SkillExecutionHandle * to_raw_ptr(T *ptr) noexcept
This file is part of ArmarX.
std::unique_ptr< class SkillProxy > SkillProxyPtr
std::vector< armarx::skills::SkillID > failedSkillIDs() const
std::map< armarx::skills::SkillExecutionID, std::optional< armarx::skills::TerminatedSkillStatusUpdate > > UpdatesMap
std::vector< armarx::skills::SkillExecutionID > failedSkillExecutionIDs() const