SpecializedSegment.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <string>
4 
7 
11 
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>
23  {
24  public:
25  SegmentBase() = delete;
26 
28  {
29  Logging::setTag("armarx::armem::Segment");
30  }
31 
32  MemoryID&
33  id()
34  {
36  return segmentPtr->id();
37  }
38 
39  const MemoryID&
40  id() const
41  {
43  return segmentPtr->id();
44  }
45 
46  virtual ~SegmentBase() = default;
47 
49  const std::string& prefix = "") = 0;
50  virtual void init() = 0;
51 
52  public:
53  SegmentType* segmentPtr;
54 
55 
56  protected:
57  // Memory connection
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