FluxioNode.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <experimental/memory>
4 #include <optional>
5 #include <string>
6 
8 #include <RobotAPI/interface/skills/SkillManagerInterface.h>
9 #include <RobotAPI/libraries/skills/core/aron/FluxioNode.aron.generated.h>
10 
11 namespace armarx
12 {
13  namespace skills
14  {
15  enum class FluxioNodeType
16  {
17  UNKNOWN = 0,
18  PARAMETER = 1,
19  CONTROL = 2,
20  SUBSKILL = 3,
21  };
22 
23  struct FluxioNode
24  {
25  virtual ~FluxioNode() = default;
27  std::string nodeId;
28  std::string name;
29  float xPos = 0;
30  float yPos = 0;
31 
32  virtual std::optional<manager::dto::FluxioNode> toManagerIce() const;
33  manager::dto::FluxioIdentificator toFluxioIdentificatorIce() const;
34  virtual std::optional<manager::arondto::FluxioNode> toAron() const;
35  manager::arondto::FluxioIdentificator toFluxioIdentificatorAron() const;
36 
38  const manager::dto::FluxioIdentificator& i,
39  const std::map<const std::string, const std::unique_ptr<FluxioNode>>& nodesMap);
41  const manager::arondto::FluxioIdentificator& i,
42  const std::map<const std::string, const std::unique_ptr<FluxioNode>>& nodesMap);
43  static FluxioNode FromIce(const manager::dto::FluxioNode& i);
44  };
45 
46  FluxioNodeType FluxioNodeTypeFromString(const std::string& type);
47  std::optional<std::string> FluxioNodeTypeToString(const FluxioNodeType& type);
48  } // namespace skills
49 } // namespace armarx
skills
This file is part of ArmarX.
armarx::skills::FluxioNode
Definition: FluxioNode.h:23
armarx::skills::FluxioNodeType::PARAMETER
@ PARAMETER
armarx::skills::FluxioNode::toFluxioIdentificatorIce
manager::dto::FluxioIdentificator toFluxioIdentificatorIce() const
Definition: FluxioNode.cpp:117
armarx::skills::FluxioNode::toFluxioIdentificatorAron
manager::arondto::FluxioIdentificator toFluxioIdentificatorAron() const
Definition: FluxioNode.cpp:126
armarx::skills::FluxioNode::FromFluxioIdentificatorIce
static std::experimental::observer_ptr< const FluxioNode > FromFluxioIdentificatorIce(const manager::dto::FluxioIdentificator &i, const std::map< const std::string, const std::unique_ptr< FluxioNode >> &nodesMap)
Definition: FluxioNode.cpp:135
armarx::skills::FluxioNode::~FluxioNode
virtual ~FluxioNode()=default
armarx::skills::FluxioNode::xPos
float xPos
Definition: FluxioNode.h:29
std::experimental::fundamentals_v2::observer_ptr
Definition: ManagedIceObject.h:53
Dict.h
armarx::skills::FluxioNode::yPos
float yPos
Definition: FluxioNode.h:30
armarx::skills::FluxioNode::FromFluxioIdentificatorAron
static std::experimental::observer_ptr< const FluxioNode > FromFluxioIdentificatorAron(const manager::arondto::FluxioIdentificator &i, const std::map< const std::string, const std::unique_ptr< FluxioNode >> &nodesMap)
Definition: FluxioNode.cpp:151
armarx::skills::FluxioNodeTypeToString
std::optional< std::string > FluxioNodeTypeToString(const FluxioNodeType &type)
Definition: FluxioNode.cpp:41
armarx::skills::FluxioNode::toManagerIce
virtual std::optional< manager::dto::FluxioNode > toManagerIce() const
Definition: FluxioNode.cpp:59
armarx::skills::FluxioNodeType::CONTROL
@ CONTROL
armarx::skills::FluxioNode::FromIce
static FluxioNode FromIce(const manager::dto::FluxioNode &i)
Definition: FluxioNode.cpp:167
armarx::skills::FluxioNodeTypeFromString
FluxioNodeType FluxioNodeTypeFromString(const std::string &type)
Definition: FluxioNode.cpp:19
armarx::skills::FluxioNode::nodeId
std::string nodeId
Definition: FluxioNode.h:27
armarx::skills::FluxioNodeType::UNKNOWN
@ UNKNOWN
armarx::skills::FluxioNodeType
FluxioNodeType
Definition: FluxioNode.h:15
armarx::skills::FluxioNodeType::SUBSKILL
@ SUBSKILL
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:27
armarx::skills::FluxioNode::toAron
virtual std::optional< manager::arondto::FluxioNode > toAron() const
Definition: FluxioNode.cpp:88
armarx::skills::FluxioNode::name
std::string name
Definition: FluxioNode.h:28
armarx::skills::FluxioNode::nodeType
FluxioNodeType nodeType
Definition: FluxioNode.h:26