18 int random = rand() %
max +
min;
31 .description =
"This skill calls 100 random subskills from the "
32 "skillProviderExample excluding the segfault skill.",
40 std::vector<std::string> subskillNames = {
"Timeout",
52 std::vector<skills::SkillExecutionHandlePtr> handles;
54 for (
unsigned int i = 0; i < 100; ++i)
60 auto subskillName = subskillNames[
index];
64 .skillName = subskillName};
76 ARMARX_INFO <<
"SLEEP FOR " << sleep_milliseconds <<
"ms";
77 std::this_thread::sleep_for(std::chrono::milliseconds(sleep_milliseconds));
80 handles.emplace_back(std::move(handle));
static Duration MilliSeconds(std::int64_t milliSeconds)
Constructs a duration in milliseconds.
std::optional< ProviderID > providerId
std::optional< TerminatedSkillStatusUpdate > callSubskill(const SkillID &skillId)
Call a subskill with the given ID and its default parameters.
virtual MainResult main()
Override this method with the actual implementation.
void throwIfSkillShouldTerminate(const std::string &abortedMessage="") const
SkillID getSkillId() const
Get the id of the skill.
SkillExecutionHandlePtr callSubskillAsync(const SkillID &skillId, std::function< void(aron::data::DictPtr &)> parametersFunction)
static SkillDescription GetSkillDescription()
#define ARMARX_CHECK(expression)
Shortcut for ARMARX_CHECK_EXPRESSION.
#define ARMARX_INFO
The normal logging level.
aron::data::DictPtr make_dict(_Args &&... args)
int randomgen(int max, int min)
JoinAllResult joinAll(const std::vector< armarx::skills::SkillExecutionHandle * > &handles)
std::vector< T > max(const std::vector< T > &v1, const std::vector< T > &v2)
std::vector< T > min(const std::vector< T > &v1, const std::vector< T > &v2)
A result struct for th main method of a skill.