ProviderSegment.h
Go to the documentation of this file.
1 #pragma once
2 
3 // Base Class
4 #include "Entity.h"
6 
8 
10 {
12  public detail::ProviderSegmentBase<Entity>
13  {
14  public:
15 
16  ProviderSegment(const std::string& exportName,
17  const MemoryID& memoryId,
18  const std::shared_ptr<Processors>& filters,
19  const std::shared_ptr<persistence::MemoryPersistenceStrategy>& persistenceStrategy);
20 
21  bool forEachEntity(std::function<void(Entity&)> func) const override;
22  bool hasEntity(const std::string& entityName) const override;
23  std::shared_ptr<Entity> findEntity(const std::string& entityName) const override;
24 
25  protected:
26  void _loadAllReferences(armem::wm::ProviderSegment& wmProviderSegment) override;
27  void _loadLatestNReferences(int n, armem::wm::ProviderSegment& wmProviderSegment) override;
28  void _resolve(armem::wm::ProviderSegment& wmProviderSegment) override;
29  void _store(const armem::wm::ProviderSegment& wmProviderSegment, bool simulatedVersion) override;
30 
31  private:
32  std::shared_ptr<persistence::MemoryPersistenceStrategy> persistenceStrategy_;
33  };
34 
35 } // namespace armarx::armem::server::ltm
armarx::armem::server::ltm::ProviderSegment::_loadLatestNReferences
void _loadLatestNReferences(int n, armem::wm::ProviderSegment &wmProviderSegment) override
Definition: ProviderSegment.cpp:118
armarx::armem::server::ltm::ProviderSegment::hasEntity
bool hasEntity(const std::string &entityName) const override
check if entity segment exists
Definition: ProviderSegment.cpp:51
armarx::armem::server::ltm::ProviderSegment
Definition: ProviderSegment.h:11
Entity.h
armarx::armem::wm::ProviderSegment
Client-side working memory provider segment.
Definition: memory_definitions.h:105
MemoryPersistenceStrategy.h
armarx::armem::server::ltm::Entity
A memory storing data in mongodb (needs 'armarx memory start' to start the mongod instance)
Definition: Entity.h:14
armarx::armem::server::ltm::ProviderSegment::ProviderSegment
ProviderSegment(const std::string &exportName, const MemoryID &memoryId, const std::shared_ptr< Processors > &filters, const std::shared_ptr< persistence::MemoryPersistenceStrategy > &persistenceStrategy)
Definition: ProviderSegment.cpp:14
magic_enum::detail::n
constexpr auto n() noexcept
Definition: magic_enum.hpp:418
armarx::armem::server::ltm::ProviderSegment::forEachEntity
bool forEachEntity(std::function< void(Entity &)> func) const override
iterate over all core segments of this ltm
Definition: ProviderSegment.cpp:25
armarx::armem::MemoryID
A memory ID.
Definition: MemoryID.h:47
armarx::armem::server::ltm::ProviderSegment::findEntity
std::shared_ptr< Entity > findEntity(const std::string &entityName) const override
find entity segment
Definition: ProviderSegment.cpp:61
armarx::armem::server::ltm::ProviderSegment::_resolve
void _resolve(armem::wm::ProviderSegment &wmProviderSegment) override
Definition: ProviderSegment.cpp:158
armarx::armem::server::ltm::ProviderSegment::_store
void _store(const armem::wm::ProviderSegment &wmProviderSegment, bool simulatedVersion) override
Definition: ProviderSegment.cpp:180
armarx::armem::server::ltm::ProviderSegment::_loadAllReferences
void _loadAllReferences(armem::wm::ProviderSegment &wmProviderSegment) override
Definition: ProviderSegment.cpp:79
armarx::armem::server::ltm
Definition: forward_declarations.h:20
armarx::armem::server::ltm::detail::ProviderSegmentBase
Interface functions for the longterm memory classes.
Definition: ProviderSegmentBase.h:16
ProviderSegmentBase.h