ChainingAsync.cpp
Go to the documentation of this file.
1#include "ChainingAsync.h"
3
6
8{
9
13
16 {
17 armarx::skills::Example::ChainingAsyncSkillParams defaultParams;
18 defaultParams.numberOfSkills = 25;
19
20 return SkillDescription{
21 .skillId = armarx::skills::SkillID{.skillName = "ChainingAsync"},
22 .description = "This skill calls the Timeout skill several times async.",
23 .rootProfileDefaults = defaultParams.toAron(),
25 .parametersType = armarx::skills::Example::ChainingAsyncSkillParams::ToAronType(),
26 .resultType = armarx::skills::Example::ChainingAsyncSkillParams::ToAronType()};
27 }
28
30 ChainingAsyncSkill::main(const SpecializedMainInput& in)
31 {
32 skills::SkillID skillId{.providerId = *getSkillId().providerId, .skillName = "Sleep"};
33
34 {
35 std::vector<skills::SkillExecutionHandlePtr> handles;
36
37 for (int i = 0; i < in.parameters.numberOfSkills; i++)
38 {
40
41 ARMARX_INFO << "Call subskill number " << i;
42 auto handle = callSubskillAsync(skillId); // Call the Timeout skill
43
44 // avoid call of d'tors before skill is done
45 handles.emplace_back(std::move(handle));
46 }
47
48 ARMARX_INFO << "Joining all handles";
50 }
51
53
54
55 return {TerminatedSkillStatus::Succeeded, nullptr};
56 }
57} // namespace armarx::skills::provider
static Duration MilliSeconds(std::int64_t milliSeconds)
Constructs a duration in milliseconds.
Definition Duration.cpp:48
std::optional< ProviderID > providerId
Definition SkillID.h:40
virtual MainResult main()
Override this method with the actual implementation.
Definition Skill.cpp:542
void throwIfSkillShouldTerminate(const std::string &abortedMessage="") const
Definition Skill.cpp:389
SkillID getSkillId() const
Get the id of the skill.
Definition Skill.cpp:587
SkillExecutionHandlePtr callSubskillAsync(const SkillID &skillId, std::function< void(aron::data::DictPtr &)> parametersFunction)
Definition Skill.cpp:148
#define ARMARX_CHECK(expression)
Shortcut for ARMARX_CHECK_EXPRESSION.
#define ARMARX_INFO
The normal logging level.
Definition Logging.h:181
JoinAllResult joinAll(const std::vector< armarx::skills::SkillExecutionHandle * > &handles)
A result struct for th main method of a skill.
Definition Skill.h:62