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{
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 std::shared_ptr<persistence::MemoryPersistenceStrategy> getPersistenceStrategy() const
23 {
24 return persistenceStrategy_;
25 }
26
27 protected:
28 // Implementation methods
29 bool _implForEachProviderSegment(std::function<void(ProviderSegment&)> func) const override;
30 bool _implHasProviderSegment(const std::string& name) const override;
31 std::shared_ptr<ProviderSegment> _implFindProviderSegment(const std::string& name) const override;
32
33 void _loadAllReferences(armem::wm::CoreSegment& wmCoreSegment) override;
34 void _loadLatestNReferences(int n, armem::wm::CoreSegment& wmCoreSegment) override;
35 void _resolve(armem::wm::CoreSegment& wmCoreSegment) override;
36 void _store(const armem::wm::CoreSegment& wmCoreSegment, bool simulatedVersion) override;
37
38 private:
39 std::shared_ptr<persistence::MemoryPersistenceStrategy> persistenceStrategy_;
40 };
41
42} // namespace armarx::armem::server::ltm
CoreSegment(const std::string &exportName, const MemoryID &memoryId, const std::shared_ptr< Processors > &filters, const std::shared_ptr< persistence::MemoryPersistenceStrategy > &persistenceStrategy)
bool _implForEachProviderSegment(std::function< void(ProviderSegment &)> func) const override
bool _implHasProviderSegment(const std::string &name) const override
void _loadLatestNReferences(int n, armem::wm::CoreSegment &wmCoreSegment) override
std::shared_ptr< ProviderSegment > _implFindProviderSegment(const std::string &name) const override
void _resolve(armem::wm::CoreSegment &wmCoreSegment) override
void _store(const armem::wm::CoreSegment &wmCoreSegment, bool simulatedVersion) override
std::shared_ptr< persistence::MemoryPersistenceStrategy > getPersistenceStrategy() const
Definition CoreSegment.h:22
void _loadAllReferences(armem::wm::CoreSegment &wmCoreSegment) override
Interface functions for the longterm memory classes.
Client-side working memory core segment.