FluxioNativeExecutor.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <optional>
4 #include <string>
5 
11 
12 #include "../FluxioSkillStatusUpdate.h"
13 #include "../SkillExecutionID.h"
14 #include "FluxioExecutor.h"
15 
16 namespace armarx::skills
17 {
19  {
20  public:
22  const std::string& id,
23  const skills::SkillID& skillId,
24  const FluxioSkill& fluxioSkill,
25  const std::function<bool(const skills::SkillExecutionID&)>&& abortSkillFunc,
26  const std::function<skills::SkillExecutionID(const skills::SkillExecutionRequest&)>&&
27  executeSkillAsyncFunc,
28  const std::function<std::optional<skills::SkillStatusUpdate>(
29  const skills::SkillExecutionID&)>&& getSkillExecutionStatusFunc);
30 
31  void run(std::string executorName,
32  armarx::aron::data::DictPtr parameters,
34  void abort() override;
35  std::optional<std::vector<skills::FluxioSkillStatusUpdate>> getStatusUpdate() override;
37 
38  private:
39  std::optional<skills::SkillExecutionID> executionId = std::nullopt;
40  const skills::SkillID skillId;
41  const FluxioSkill& fluxioSkill;
42  const armarx::Duration pollingFrequency = armarx::Duration::MilliSeconds(100);
43  void setStatus(skills::SkillStatus status, const std::string& nodeId = "noId") override;
44  const std::function<bool(const skills::SkillExecutionID&)> abortSkill;
45  const std::function<skills::SkillExecutionID(const skills::SkillExecutionRequest&)>
46  executeSkillAsync;
47  const std::function<std::optional<skills::SkillStatusUpdate>(
49  getSkillExecutionStatus;
50  };
51 } // namespace armarx::skills
armarx::skills::FluxioSkill
Definition: FluxioSkill.h:25
armarx::skills::FluxioNativeExecutor::run
void run(std::string executorName, armarx::aron::data::DictPtr parameters, std::experimental::observer_ptr< const FluxioProfile > profilePtr) override
Definition: FluxioNativeExecutor.cpp:45
armarx::skills::SkillExecutionID
Definition: SkillExecutionID.h:15
SkillStatusUpdate.h
armarx::skills::FluxioNativeExecutor::FluxioNativeExecutor
FluxioNativeExecutor(const std::string &id, const skills::SkillID &skillId, const FluxioSkill &fluxioSkill, const std::function< bool(const skills::SkillExecutionID &)> &&abortSkillFunc, const std::function< skills::SkillExecutionID(const skills::SkillExecutionRequest &)> &&executeSkillAsyncFunc, const std::function< std::optional< skills::SkillStatusUpdate >(const skills::SkillExecutionID &)> &&getSkillExecutionStatusFunc)
Definition: FluxioNativeExecutor.cpp:24
SkillID.h
FluxioSkill.h
armarx::skills
This file is part of ArmarX.
Definition: PeriodicUpdateWidget.cpp:11
armarx::skills::FluxioExecutor::executorName
std::optional< std::string > executorName
Definition: FluxioExecutor.h:51
armarx::skills::FluxioExecutor
Definition: FluxioExecutor.h:21
std::experimental::fundamentals_v2::observer_ptr
Definition: ManagedIceObject.h:53
Dict.h
armarx::skills::FluxioNativeExecutor::getStatusUpdate
std::optional< std::vector< skills::FluxioSkillStatusUpdate > > getStatusUpdate() override
Definition: FluxioNativeExecutor.cpp:152
armarx::skills::SkillExecutionRequest
Definition: SkillExecutionRequest.h:13
armarx::status
status
Definition: FiniteStateMachine.h:244
armarx::skills::FluxioNativeExecutor::abort
void abort() override
Definition: FluxioNativeExecutor.cpp:129
armarx::skills::FluxioNativeExecutor
Definition: FluxioNativeExecutor.h:18
FluxioExecutor.h
armarx::skills::FluxioNativeExecutor::getResultsCopy
armarx::aron::data::DictPtr getResultsCopy() override
Definition: FluxioNativeExecutor.cpp:194
SkillExecutionRequest.h
armarx::aron::data::DictPtr
std::shared_ptr< Dict > DictPtr
Definition: Dict.h:41
armarx::core::time::Duration
Represents a duration.
Definition: Duration.h:16
armarx::skills::SkillID
Definition: SkillID.h:14
armarx::core::time::Duration::MilliSeconds
static Duration MilliSeconds(std::int64_t milliSeconds)
Constructs a duration in milliseconds.
Definition: Duration.cpp:48
armarx::skills::SkillStatus
SkillStatus
Definition: SkillStatusUpdate.h:15