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 <mutex>
26
#include <optional>
27
#include <string>
28
#include <unordered_map>
29
30
// ArmarX
31
#include <RobotAPI/interface/units/RobotUnit/RobotUnitInterface.h>
32
#include <
RobotAPI/libraries/armem/server/segment/SpecializedCoreSegment.h
>
33
#include <
RobotAPI/libraries/armem/server/segment/SpecializedProviderSegment.h
>
34
#include <
RobotAPI/libraries/armem_robot_state/server/forward_declarations.h
>
35
36
// Aron
37
#include <RobotAPI/libraries/armem_robot_state/aron/RobotDescription.aron.generated.h>
38
#include <
RobotAPI/libraries/armem_robot_state/types.h
>
39
40
namespace
armarx::armem::server::robot_state::description
41
{
42
43
class
Segment
:
public
segment::SpecializedCoreSegment
44
{
45
using
Base
=
segment::SpecializedCoreSegment
;
46
47
public
:
48
Segment
(
server::MemoryToIceAdapter
&
iceMemory
);
49
virtual
~Segment
()
override
;
50
51
52
void
onConnect
(
const
RobotUnitInterfacePrx
& robotUnitPrx);
53
54
55
RobotDescriptionMap
getRobotDescriptions
(
const
armem::Time
& timestamp)
const
;
56
RobotDescriptionMap
getRobotDescriptionsLocking
(
const
armem::Time
& timestamp)
const
;
57
58
59
private
:
60
void
commitRobotDescription(
61
const
armem::robot_state::description::RobotDescription
& robotDescription);
62
void
updateRobotDescription();
63
64
RobotUnitInterfacePrx
robotUnit;
65
};
66
67
}
// namespace armarx::armem::server::robot_state::description
armarx::armem::server::segment::SpecializedCoreSegment
A base class for core segments.
Definition:
SpecializedCoreSegment.h:20
armarx::armem::robot_state::description::RobotDescription
Definition:
types.h:44
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:44
armarx::armem::server::robot_state::description::Segment
Definition:
Segment.h:43
forward_declarations.h
armarx::armem::server::robot_state::description
Definition:
Segment.cpp:31
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 ×tamp) const
Definition:
Segment.cpp:283
types.h
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:34
armarx::armem::server::robot_state::description::RobotDescriptionMap
std::unordered_map< std::string, armarx::armem::robot_state::description::RobotDescription > RobotDescriptionMap
Definition:
forward_declarations.h:67
armarx::armem::server::robot_state::description::Segment::getRobotDescriptionsLocking
RobotDescriptionMap getRobotDescriptionsLocking(const armem::Time ×tamp) const
Definition:
Segment.cpp:277
IceInternal::ProxyHandle<::IceProxy::armarx::RobotUnitInterface >
SpecializedProviderSegment.h
SpecializedCoreSegment.h
RobotAPI
libraries
armem_robot_state
server
description
Segment.h
Generated on Sat Oct 12 2024 09:14:09 for armarx_documentation by
1.8.17