Skip to content
Snippets Groups Projects

Add convenience functions for calling subskills

Merged Rainer Kartmann requested to merge feature/subskill-convenience-functions into master
Files
2
@@ -19,10 +19,22 @@ namespace armarx
}
std::optional<TerminatedSkillStatusUpdate>
Skill::callSubskill(const SkillProxy& prx, const aron::data::DictPtr& params)
Skill::callSubskill(const SkillProxy& proxy)
{
auto eid = callSubskillAsync(prx, params);
auto ret = prx.join(eid);
return callSubskill(proxy, proxy.getRootProfileParameters());
}
std::optional<TerminatedSkillStatusUpdate>
Skill::callSubskill(const SkillProxy& proxy, const aron::data::DictPtr& parameters)
{
auto executionId = callSubskillAsync(proxy, parameters);
auto ret = proxy.join(executionId);
// While the sub skill was running, our skill might also have been aborted.
// In this case, the correct behavour would be aborting ourselves.
// The caller of callSubskill() can catch the thrown error::SkillAbortedException
// if necessary.
throwIfSkillShouldTerminate();
return ret;
}
@@ -38,17 +50,20 @@ namespace armarx
}
std::optional<TerminatedSkillStatusUpdate>
Skill::callSubskillWithParameters(const SkillID& skillId,
const aron::data::DictPtr& parameters)
Skill::callSubskill(const SkillID& skillId)
{
SkillProxy proxy(manager, skillId);
return callSubskill(proxy, parameters);
return callSubskill(SkillProxy(manager, skillId));
}
std::optional<TerminatedSkillStatusUpdate>
Skill::callSubskillBasedOnDefaultParameters(
const SkillID& skillId,
std::function<void(aron::data::DictPtr&)> parametersFunction)
Skill::callSubskill(const SkillID& skillId, const aron::data::DictPtr& parameters)
{
return callSubskill(SkillProxy(manager, skillId), parameters);
}
std::optional<TerminatedSkillStatusUpdate>
Skill::callSubskill(const SkillID& skillId,
std::function<void(aron::data::DictPtr&)> parametersFunction)
{
SkillProxy proxy(manager, skillId);
@@ -63,13 +78,6 @@ namespace armarx
return callSubskill(proxy, parameters);
}
std::optional<TerminatedSkillStatusUpdate>
Skill::callSubskillWithDefaultParameters(const SkillID& skillId)
{
auto parametersFn = [](aron::data::DictPtr&) {};
return callSubskillBasedOnDefaultParameters(skillId, parametersFn);
}
void
Skill::updateParameters(const aron::data::DictPtr& d)
{
Loading