SpecializedSegment.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <string>
4
5
#include <
ArmarXCore/core/application/properties/forward_declarations.h
>
6
#include <
ArmarXCore/core/logging/Logging.h
>
7
8
#include <
RobotAPI/libraries/armem/server/forward_declarations.h
>
9
#include <
RobotAPI/libraries/armem/server/wm/memory_definitions.h
>
10
#include <
RobotAPI/libraries/aron/core/type/variant/forward_declarations.h
>
11
12
namespace
armarx::armem::server::segment
13
{
14
namespace
detail
15
{
16
/**
17
* @brief A base class for memory servers to manage their segments.
18
* A segment can inherit this base class and add segment specific code.
19
* TODO (fabian.peller): add concept to only accept coresegments, providersegments or entitysegments
20
*/
21
template
<
class
SegmentType>
22
class
SegmentBase
:
public
armarx::Logging
23
{
24
public
:
25
SegmentBase
() =
delete
;
26
27
SegmentBase
(
MemoryToIceAdapter
&
iceMemory
) :
iceMemory
(
iceMemory
)
28
{
29
Logging::setTag
(
"armarx::armem::Segment"
);
30
}
31
32
MemoryID
&
33
id
()
34
{
35
ARMARX_CHECK_NOT_NULL
(
segmentPtr
);
36
return
segmentPtr
->id();
37
}
38
39
const
MemoryID
&
40
id
()
const
41
{
42
ARMARX_CHECK_NOT_NULL
(
segmentPtr
);
43
return
segmentPtr
->id();
44
}
45
46
virtual
~SegmentBase
() =
default
;
47
48
virtual
void
defineProperties
(
armarx::PropertyDefinitionsPtr
defs,
49
const
std::string& prefix =
""
) = 0;
50
virtual
void
init
() = 0;
51
52
public
:
53
SegmentType*
segmentPtr
;
54
55
56
protected
:
57
// Memory connection
58
MemoryToIceAdapter
&
iceMemory
;
59
};
60
}
// namespace detail
61
}
// namespace armarx::armem::server::segment
armarx::armem::server::segment::detail::SegmentBase::id
const MemoryID & id() const
Definition:
SpecializedSegment.h:40
armarx::armem::server::MemoryToIceAdapter
Helps connecting a Memory server to the Ice interface.
Definition:
MemoryToIceAdapter.h:19
ARMARX_CHECK_NOT_NULL
#define ARMARX_CHECK_NOT_NULL(ptr)
This macro evaluates whether ptr is not null and if it turns out to be false it will throw an Express...
Definition:
ExpressionException.h:206
detail
Definition:
OpenCVUtil.cpp:128
armarx::armem::server::segment::detail::SegmentBase::~SegmentBase
virtual ~SegmentBase()=default
memory_definitions.h
armarx::armem::server::segment::detail::SegmentBase::segmentPtr
SegmentType * segmentPtr
Definition:
SpecializedSegment.h:53
armarx::armem::server::segment::detail::SegmentBase::defineProperties
virtual void defineProperties(armarx::PropertyDefinitionsPtr defs, const std::string &prefix="")=0
armarx::armem::MemoryID
A memory ID.
Definition:
MemoryID.h:47
armarx::armem::server::segment::detail::SegmentBase::SegmentBase
SegmentBase(MemoryToIceAdapter &iceMemory)
Definition:
SpecializedSegment.h:27
armarx::armem::server::segment::detail::SegmentBase
A base class for memory servers to manage their segments.
Definition:
SpecializedSegment.h:22
armarx::armem::server::segment::detail::SegmentBase::SegmentBase
SegmentBase()=delete
armarx::armem::server::segment::detail::SegmentBase::init
virtual void init()=0
forward_declarations.h
armarx::armem::server::segment
Definition:
constants.h:1
armarx::Logging
Base Class for all Logging classes.
Definition:
Logging.h:239
armarx::armem::server::segment::detail::SegmentBase::iceMemory
MemoryToIceAdapter & iceMemory
Definition:
SpecializedSegment.h:58
forward_declarations.h
IceUtil::Handle< class PropertyDefinitionContainer >
forward_declarations.h
armarx::armem::server::segment::detail::SegmentBase::id
MemoryID & id()
Definition:
SpecializedSegment.h:33
armarx::Logging::setTag
void setTag(const LogTag &tag)
Definition:
Logging.cpp:54
Logging.h
RobotAPI
libraries
armem
server
segment
detail
SpecializedSegment.h
Generated by
1.8.17