MemoryItem.h
Go to the documentation of this file.
1#pragma once
2
3#include <map>
4#include <mutex>
5#include <optional>
6#include <string>
7
9
11{
12 /// @brief Interface functions for the longterm memory classes
14 {
15 public:
16 MemoryItem(const std::string& exportName, const MemoryID&); // only used by memory
17 MemoryItem(const std::string& exportName,
18 const MemoryID&,
19 const std::shared_ptr<Processors>&); // used by all other segments
20 virtual ~MemoryItem() = default;
21
22 void setExportName(const std::string& n);
23 void setMemoryID(const MemoryID&);
24 void setMemoryName(const std::string& memoryName);
25
26 virtual std::string
28 {
29 return exportName;
30 }
31
34 {
35 return id();
36 }
37
38 // aliases
39 MemoryID id() const;
40 std::string name() const;
41
42 protected:
43 virtual void
44 _setExportName(const std::string&)
45 {
46 }
47
48 virtual void
50 {
51 }
52
53 protected:
54 std::shared_ptr<Processors> processors;
55
56 private:
57 std::string exportName = "MemoryExportMI";
58 MemoryID _id;
59 };
60} // namespace armarx::armem::server::ltm::detail
void setMemoryName(const std::string &memoryName)
virtual std::string getExportName() const
Definition MemoryItem.h:27
virtual void _setExportName(const std::string &)
Definition MemoryItem.h:44
virtual void _setMemoryID(const MemoryID &)
Definition MemoryItem.h:49
std::shared_ptr< Processors > processors
Definition MemoryItem.h:54
MemoryItem(const std::string &exportName, const MemoryID &)