Segment.h
Go to the documentation of this file.
1 /*
2  * This file is part of ArmarX.
3  *
4  * ArmarX is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  *
8  * ArmarX is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  *
16  * @author Fabian Reister ( fabian dot reister at kit dot edu )
17  * @date 2021
18  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
19  * GNU General Public License
20  */
21 
22 #pragma once
23 
24 // STD / STL
25 #include <string>
26 #include <optional>
27 #include <mutex>
28 #include <unordered_map>
29 
30 // ArmarX
31 #include <RobotAPI/interface/units/RobotUnit/RobotUnitInterface.h>
35 
36 // Aron
37 #include <RobotAPI/libraries/armem_robot/aron/RobotDescription.aron.generated.h>
38 
39 
41 {
42 
44  {
46 
47  public:
48 
50  virtual ~Segment() override;
51 
52 
53  void onConnect(const RobotUnitInterfacePrx& robotUnitPrx);
54 
55 
58 
59 
60  private:
61 
62  void commitRobotDescription(const robot::RobotDescription& robotDescription);
63  void updateRobotDescription();
64 
65  RobotUnitInterfacePrx robotUnit;
66 
67  };
68 
69 } // namespace armarx::armem::server::robot_state::description
armarx::armem::server::segment::SpecializedCoreSegment
A base class for core segments.
Definition: SpecializedCoreSegment.h:20
armarx::armem::server::MemoryToIceAdapter
Helps connecting a Memory server to the Ice interface.
Definition: MemoryToIceAdapter.h:19
armarx::armem::server::robot_state::description::Segment::onConnect
void onConnect(const RobotUnitInterfacePrx &robotUnitPrx)
Definition: Segment.cpp:39
armarx::armem::server::robot_state::description::Segment
Definition: Segment.h:43
armarx::armem::robot::RobotDescription
Definition: types.h:17
forward_declarations.h
armarx::armem::server::robot_state::description
Definition: Segment.cpp:28
armarx::armem::server::robot_state::description::Segment::~Segment
virtual ~Segment() override
armarx::armem::server::segment::detail::SegmentBase< server::wm::CoreSegment >
armarx::armem::server::robot_state::description::Segment::getRobotDescriptions
RobotDescriptionMap getRobotDescriptions(const armem::Time &timestamp) const
Definition: Segment.cpp:133
armarx::armem::server::robot_state::description::RobotDescriptionMap
std::unordered_map< std::string, robot::RobotDescription > RobotDescriptionMap
Definition: forward_declarations.h:64
armarx::core::time::DateTime
Represents a point in time.
Definition: DateTime.h:24
armarx::armem::server::segment::detail::SegmentBase< server::wm::CoreSegment >::iceMemory
MemoryToIceAdapter & iceMemory
Definition: SpecializedSegment.h:60
armarx::armem::server::robot_state::description::Segment::Segment
Segment(server::MemoryToIceAdapter &iceMemory)
Definition: Segment.cpp:31
armarx::armem::server::robot_state::description::Segment::getRobotDescriptionsLocking
RobotDescriptionMap getRobotDescriptionsLocking(const armem::Time &timestamp) const
Definition: Segment.cpp:123
IceInternal::ProxyHandle<::IceProxy::armarx::RobotUnitInterface >
SpecializedProviderSegment.h
SpecializedCoreSegment.h