SkillImplementationWrapper.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <shared_mutex>
4 
5 #include "../SkillDescription.h"
6 #include "../SkillStatusUpdate.h"
7 #include "../Skill.h"
8 
9 #include <RobotAPI/interface/skills/SkillManagerInterface.h>
10 
11 namespace armarx
12 {
13  namespace skills
14  {
15  namespace detail
16  {
18  {
19  public:
20  // fixed values. Do not change after skill instantiation
21  const std::unique_ptr<Skill> skill;
22 
23  // Current execution status. Changes during execution
24  // The status also holds the used parameterization
25  // skillName and providerName are const after registering the skill in a provider
26  mutable std::shared_mutex skillStatusMutex;
28 
29  // Task information
30  mutable std::shared_mutex executingMutex;
31 
32  // ctor
33  SkillImplementationWrapper(std::unique_ptr<skills::Skill>&& skill);
34 
35  // execute a skill. The parameterization is copied. T
36  // the return type additionally contains the input configuration (similar to the status updates used in callbacks)
38  };
39  }
40  }
41 }
armarx::skills::detail::SkillImplementationWrapper::statusUpdate
SkillStatusUpdate statusUpdate
Definition: SkillImplementationWrapper.h:27
skills
This file is part of ArmarX.
armarx::skills::detail::SkillImplementationWrapper::setupAndExecuteSkill
TerminatedSkillStatusUpdate setupAndExecuteSkill(const std::string &executorName, const skills::SkillParameterization)
Definition: SkillImplementationWrapper.cpp:13
detail
Definition: OpenCVUtil.cpp:127
armarx::skills::detail::SkillImplementationWrapper::executingMutex
std::shared_mutex executingMutex
Definition: SkillImplementationWrapper.h:30
armarx::skills::detail::SkillImplementationWrapper::skill
const std::unique_ptr< Skill > skill
Definition: SkillImplementationWrapper.h:21
armarx::skills::SkillStatusUpdate
Definition: SkillStatusUpdate.h:82
armarx::skills::detail::SkillImplementationWrapper::skillStatusMutex
std::shared_mutex skillStatusMutex
Definition: SkillImplementationWrapper.h:26
armarx::skills::detail::SkillImplementationWrapper::SkillImplementationWrapper
SkillImplementationWrapper(std::unique_ptr< skills::Skill > &&skill)
Definition: SkillImplementationWrapper.cpp:7
armarx::skills::TerminatedSkillStatusUpdate
Definition: SkillStatusUpdate.h:64
armarx::skills::SkillParameterization
Definition: SkillParameterization.h:13
armarx::skills::detail::SkillImplementationWrapper
Definition: SkillImplementationWrapper.h:17
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:28