SkillImplementationWrapper.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <experimental/memory>
4
#include <mutex>
5
6
#include <RobotAPI/interface/skills/SkillProviderInterface.h>
7
#include <
RobotAPI/libraries/aron/core/data/variant/container/Dict.h
>
8
#include <
RobotAPI/libraries/skills/core/SkillStatusUpdate.h
>
9
#include <
RobotAPI/libraries/skills/provider/SkillFactory.h
>
10
11
namespace
armarx
12
{
13
namespace
skills
14
{
15
namespace
detail
16
{
17
class
SkillRuntime
18
{
19
private
:
20
const
std::experimental::observer_ptr<const skills::SkillBlueprint>
factory;
21
22
std::unique_ptr<Skill> skill;
23
mutable
std::mutex executionMutex;
24
25
public
:
26
// Current execution statuses. Changes during execution
27
// The status also holds the used parameterization
28
mutable
std::mutex
skillStatusesMutex
;
29
SkillStatusUpdate
statusUpdate
;
30
31
// Set exteranally to store the execution somewhere
32
std::thread
execution
;
33
34
// ctor
35
SkillRuntime
(
const
skills::SkillBlueprint
* fac,
36
const
skills::SkillExecutionID
&,
37
const
aron::data::DictPtr
&,
38
const
skills::callback::dti::SkillProviderCallbackInterfacePrx&);
39
40
// execute a skill. The parameterization is copied. T
41
// the return type additionally contains the input configuration (similar to the status updates used in callbacks)
42
TerminatedSkillStatusUpdate
executeSkill
();
43
44
// ask a skill to stop. Must be concurrent to execute skill
45
void
stopSkill
();
46
47
// add parameters to a skill. Must be concurrent to execute skill
48
void
updateSkillParameters
(
const
aron::data::DictPtr
& i);
49
};
50
}
// namespace detail
51
}
// namespace skills
52
}
// namespace armarx
armarx::skills::SkillExecutionID
Definition:
SkillExecutionID.h:15
skills
This file is part of ArmarX.
SkillStatusUpdate.h
armarx::skills::detail::SkillRuntime::statusUpdate
SkillStatusUpdate statusUpdate
Definition:
SkillImplementationWrapper.h:29
armarx::skills::detail::SkillRuntime::skillStatusesMutex
std::mutex skillStatusesMutex
Definition:
SkillImplementationWrapper.h:28
SkillFactory.h
detail
Definition:
OpenCVUtil.cpp:128
std::experimental::fundamentals_v2::observer_ptr
Definition:
ManagedIceObject.h:53
Dict.h
armarx::skills::detail::SkillRuntime::execution
std::thread execution
Definition:
SkillImplementationWrapper.h:32
armarx::skills::detail::SkillRuntime::executeSkill
TerminatedSkillStatusUpdate executeSkill()
Definition:
SkillImplementationWrapper.cpp:52
armarx::skills::SkillStatusUpdate
Definition:
SkillStatusUpdate.h:116
armarx::skills::detail::SkillRuntime::updateSkillParameters
void updateSkillParameters(const aron::data::DictPtr &i)
Definition:
SkillImplementationWrapper.cpp:38
armarx::skills::detail::SkillRuntime::stopSkill
void stopSkill()
Definition:
SkillImplementationWrapper.cpp:24
armarx::skills::detail::SkillRuntime
Definition:
SkillImplementationWrapper.h:17
armarx::skills::TerminatedSkillStatusUpdate
Definition:
SkillStatusUpdate.h:74
armarx::aron::data::DictPtr
std::shared_ptr< Dict > DictPtr
Definition:
Dict.h:41
armarx::skills::SkillBlueprint
Definition:
SkillFactory.h:11
armarx::skills::detail::SkillRuntime::SkillRuntime
SkillRuntime(const skills::SkillBlueprint *fac, const skills::SkillExecutionID &, const aron::data::DictPtr &, const skills::callback::dti::SkillProviderCallbackInterfacePrx &)
Definition:
SkillImplementationWrapper.cpp:13
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition:
ArmarXTimeserver.cpp:27
RobotAPI
libraries
skills
provider
detail
SkillImplementationWrapper.h
Generated on Sat Mar 29 2025 09:17:31 for armarx_documentation by
1.8.17