SkillExecutorInterface.h
Go to the documentation of this file.
1#pragma once
2
3#include <functional>
4#include <optional>
5
7
9#include <RobotAPI/libraries/skills/core/SkillID.h> // TODO: Break cyclic dependency.
10#include <RobotAPI/libraries/skills/core/SkillStatusUpdate.h> // TODO: Break cyclic dependency.
11
12// TODO: core is way to heavy right now. SkillID and the output structs should be very lightweight
13// to put there. Most other classes, however, are "server"-code (integrating skills into the skill
14// framework), not really "core".
15
17{
18
20 {
21 public:
22 virtual ~SkillExecutorInterface() = default;
23
24 virtual std::optional<armarx::skills::TerminatedSkillStatusUpdate> executeSkill(
25 const ::armarx::skills::SkillID& skillID,
26 std::function<aron::data::DictPtr(aron::data::DictPtr&)> const& parametersFunction) = 0;
27
28 virtual void
29 waitFor(const armarx::Duration& duration,
31
32 virtual bool shouldSkillTerminate() const = 0;
33 };
34
35} // namespace armarx::skills::client
static Duration MilliSeconds(std::int64_t milliSeconds)
Constructs a duration in milliseconds.
Definition Duration.cpp:48
Represents a duration.
Definition Duration.h:17
virtual std::optional< armarx::skills::TerminatedSkillStatusUpdate > executeSkill(const ::armarx::skills::SkillID &skillID, std::function< aron::data::DictPtr(aron::data::DictPtr &)> const &parametersFunction)=0
virtual void waitFor(const armarx::Duration &duration, const armarx::Duration &interval=armarx::Duration::MilliSeconds(200)) const =0
std::shared_ptr< Dict > DictPtr
Definition Dict.h:42
Interval< T > interval(T lo, T hi)