#include "Chaining.h" namespace armarx::skills::provider { ChainingSkill::ChainingSkill() : SimpleSkill(GetSkillDescription()) { } SkillDescription ChainingSkill::GetSkillDescription() { return SkillDescription{.skillId = armarx::skills::SkillID{.skillName = "Chaining"}, .description = "This skill calls the Timeout skill several times. At some point the " "execution is aborted due to a timeout of this skill.", .timeout = armarx::core::time::Duration::MilliSeconds(10000)}; } Skill::MainResult ChainingSkill::main(const MainInput& in) { SkillProxy prx( manager, skills::SkillID{.providerId = *getSkillId().providerId, .skillName = "Timeout"}); for (int i = 0; i < 25; i++) { this->throwIfSkillShouldTerminate(); ARMARX_INFO << "Call subskill number " << i; callSubskill(prx); // Call the Timeout skill and wait for it to finish } this->throwIfSkillShouldTerminate(); return {TerminatedSkillStatus::Succeeded, nullptr}; } } // namespace armarx::skills::provider