Go to the documentation of this file.
28 std::vector<std::shared_ptr<MemoryPersistenceStrategy>>& strategies) :
29 strategies_(strategies)
37 std::vector<std::string>
40 std::vector<std::string> keys;
42 for (
auto& strategy : strategies_)
44 std::vector<std::string> strategyKeys = strategy->getContainerKeys(
id);
45 keys.insert(keys.end(), strategyKeys.begin(), strategyKeys.end());
55 std::vector<std::string>
58 std::vector<std::string> keys;
60 for (
auto& strategy : strategies_)
62 std::vector<std::string> strategyKeys = strategy->getItemKeys(
id);
63 keys.insert(keys.end(), strategyKeys.begin(), strategyKeys.end());
75 for (
auto&
s : strategies_)
77 if (
s->containsContainer(
id, key))
92 for (
auto&
s : strategies_)
94 if (
s->containsItem(
id, key))
108 const std::string key,
109 std::vector<unsigned char>&
data)
override
111 for (
auto&
s : strategies_)
113 s->storeItem(
id, key,
data);
120 std::vector<unsigned char>
123 for (
auto&
s : strategies_)
125 if (
s->containsItem(
id, key))
127 return s->retrieveItem(
id, key);
131 return std::vector<unsigned char>();
137 for (
auto&
s : strategies_)
139 if (
s->containsItem(
id, key))
141 return s->retrieveItemWithOrigin(
id, key);
145 return {
"undefined4", std::vector<unsigned char>()};
156 for (
auto&
s : strategies_)
158 s->setExportName(exportName);
169 strategies_.emplace_back(strategy);
184 for (
auto&
s : strategies_)
186 s->createPropertyDefinitions(defs, prefix);
195 for (
auto&
s : strategies_)
206 for (
auto&
s : strategies_)
215 for (
auto&
s : strategies_)
223 std::vector<std::shared_ptr<MemoryPersistenceStrategy>> strategies_;
Basically the option to use multiple ltm sinks as source or target.
std::vector< std::string > getContainerKeys(const armarx::armem::MemoryID &id) override
Returns all containers over all strategies.
void clearStrategies()
Removes all strategies.
Abstract memory persistence strategy (resp.
bool containsContainer(const armarx::armem::MemoryID &id, std::string key) override
Checks if any strategy contains the container.
bool containsItem(const armarx::armem::MemoryID &id, std::string key) override
Checks if any strategy contains the item.
bool isEnabled() override
void addStrategy(std::shared_ptr< MemoryPersistenceStrategy > strategy)
Add another strategy to the end.
Retrieved items' data with an origin (resp.
void setExportName(const std::string &exportName) override
Sets the export name for all strategies.
std::vector< std::string > getItemKeys(const armarx::armem::MemoryID &id) override
Returns all items over all strategies.
void createPropertyDefinitions(PropertyDefinitionsPtr &defs, const std::string &prefix) override
RedundantPersistenceStrategy(std::vector< std::shared_ptr< MemoryPersistenceStrategy >> &strategies)
ItemResult retrieveItemWithOrigin(const armarx::armem::MemoryID &id, std::string &key) override
Retrieves the actual data but also appends the origin which is in this case the strategy identifier.
double s(double t, double s0, double v0, double a0, double j)
void storeItem(const armarx::armem::MemoryID &id, const std::string key, std::vector< unsigned char > &data) override
Stores the item to every strategy.
std::string exportName_
Name of the specific memory export where our items should be stored.
RedundantPersistenceStrategy()=default
std::vector< unsigned char > retrieveItem(const armarx::armem::MemoryID &id, std::string key) override
Retrieves the data of the item following the FIFO principle (if the item exists at any strategy).