CoreSegment.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <memory>
4 
5 // Base Class
6 #include "ProviderSegment.h"
8 
10 
12 {
13  class CoreSegment :
14  public detail::CoreSegmentBase<ProviderSegment>
15  {
16  public:
17  CoreSegment(const std::string& exportName,
18  const MemoryID& memoryId,
19  const std::shared_ptr<Processors>& filters,
20  const std::shared_ptr<persistence::MemoryPersistenceStrategy>& persistenceStrategy);
21 
22  bool forEachProviderSegment(std::function<void(ProviderSegment&)> func) const override;
23  bool hasProviderSegment(const std::string& name) const override;
24  std::shared_ptr<ProviderSegment> findProviderSegment(const std::string& name) const override;
25 
26  std::shared_ptr<persistence::MemoryPersistenceStrategy> getPersistenceStrategy() const
27  {
28  return persistenceStrategy_;
29  }
30  protected:
31  void _loadAllReferences(armem::wm::CoreSegment& wmCoreSegment) override;
32  void _loadLatestNReferences(int n, armem::wm::CoreSegment& wmCoreSegment) override;
33  void _resolve(armem::wm::CoreSegment& wmCoreSegment) override;
34  void _store(const armem::wm::CoreSegment& wmCoreSegment, bool simulatedVersion) override;
35 
36  private:
37  std::shared_ptr<persistence::MemoryPersistenceStrategy> persistenceStrategy_;
38  };
39 
40 } // namespace armarx::armem::server::ltm
armarx::armem::server::ltm::ProviderSegment
Definition: ProviderSegment.h:11
MemoryPersistenceStrategy.h
CoreSegmentBase.h
armarx::armem::server::ltm::CoreSegment::_store
void _store(const armem::wm::CoreSegment &wmCoreSegment, bool simulatedVersion) override
Definition: CoreSegment.cpp:177
magic_enum::detail::n
constexpr auto n() noexcept
Definition: magic_enum.hpp:418
armarx::armem::server::ltm::detail::CoreSegmentBase
Interface functions for the longterm memory classes.
Definition: CoreSegmentBase.h:17
armarx::armem::MemoryID
A memory ID.
Definition: MemoryID.h:47
armarx::armem::server::ltm::CoreSegment::hasProviderSegment
bool hasProviderSegment(const std::string &name) const override
check if provider segment exists
Definition: CoreSegment.cpp:47
armarx::armem::wm::CoreSegment
Client-side working memory core segment.
Definition: memory_definitions.h:119
armarx::armem::server::ltm::CoreSegment::_loadAllReferences
void _loadAllReferences(armem::wm::CoreSegment &wmCoreSegment) override
Definition: CoreSegment.cpp:76
ProviderSegment.h
armarx::armem::server::ltm::CoreSegment::forEachProviderSegment
bool forEachProviderSegment(std::function< void(ProviderSegment &)> func) const override
iterate over all provider segments of this ltm
Definition: CoreSegment.cpp:21
armarx::armem::server::ltm
Definition: forward_declarations.h:20
armarx::armem::server::ltm::CoreSegment
Definition: CoreSegment.h:13
armarx::armem::server::ltm::CoreSegment::getPersistenceStrategy
std::shared_ptr< persistence::MemoryPersistenceStrategy > getPersistenceStrategy() const
Definition: CoreSegment.h:26
armarx::armem::server::ltm::CoreSegment::findProviderSegment
std::shared_ptr< ProviderSegment > findProviderSegment(const std::string &name) const override
find provider segment
Definition: CoreSegment.cpp:57
armarx::armem::server::ltm::CoreSegment::_loadLatestNReferences
void _loadLatestNReferences(int n, armem::wm::CoreSegment &wmCoreSegment) override
Definition: CoreSegment.cpp:115
armarx::armem::server::ltm::CoreSegment::CoreSegment
CoreSegment(const std::string &exportName, const MemoryID &memoryId, const std::shared_ptr< Processors > &filters, const std::shared_ptr< persistence::MemoryPersistenceStrategy > &persistenceStrategy)
Definition: CoreSegment.cpp:13
armarx::armem::server::ltm::CoreSegment::_resolve
void _resolve(armem::wm::CoreSegment &wmCoreSegment) override
Definition: CoreSegment.cpp:154
armarx::armem::server::ltm::detail::MemoryItem::name
std::string name() const
Definition: MemoryItem.cpp:43