16 const std::shared_ptr<Processors>& filters,
17 const std::shared_ptr<persistence::MemoryPersistenceStrategy>& persistenceStrategy) :
18 ProviderSegmentBase(exportName, memoryId, filters),
19 persistenceStrategy_(persistenceStrategy)
33 for (std::string& entityName : persistenceStrategy_->getContainerKeys(
id()))
37 std::shared_ptr<persistence::MemoryPersistenceStrategy> entityPersistenceStrategy(persistenceStrategy_);
40 id().withEntityName(entityName),
42 entityPersistenceStrategy);
57 return persistenceStrategy_->containsContainer(
id(), entityName);
60 std::shared_ptr<Entity>
73 id().withEntityName(entityName),
75 persistenceStrategy_);
94 auto aron = conv.convert(filecontent,
"");
99 [&wmProviderSegment](
auto& ltmEntity)
102 ltmEntity.loadAllReferences(wmEntity);
107 armem::wm::Entity existingWmEntity = wmProviderSegment.getEntity(wmEntity.name());
108 existingWmEntity.append(wmEntity);
112 wmProviderSegment.addEntity(wmEntity);
126 auto& conv =
processors->defaultTypeConverter;
131 auto& conv =
processors->defaultTypeConverter;
134 auto aron = conv.convert(filecontent,
"");
135 wmProviderSegment.
aronType() = aron;
139 [&wmProviderSegment, &
n](
auto& ltmEntity)
142 ltmEntity.loadLatestNReferences(
n, wmEntity);
147 armem::wm::Entity existingWmEntity = wmProviderSegment.getEntity(wmEntity.name());
148 existingWmEntity.append(wmEntity);
152 wmProviderSegment.addEntity(wmEntity);
169 std::shared_ptr<persistence::MemoryPersistenceStrategy> entityPersistenceStrategy(persistenceStrategy_);
172 id().withEntityName(wmEntity.id().entityName),
174 entityPersistenceStrategy);
186 if (
id().providerSegmentName.empty())
189 <<
"During storage of segment '" << wmProviderSegment.
id().
str()
190 <<
"' I noticed that the corresponding LTM has no id set. "
191 <<
"I set the id of the LTM to the same name, however this should not happen!";
199 auto& conv =
processors->defaultTypeConverter;
201 auto [vec, modeSuffix] = conv.convert(wmProviderSegment.
aronType());
205 persistenceStrategy_->storeItem(
id(), key, vec);
209 ARMARX_DEBUG <<
"ProviderSegment does not seem to have an aron type, so aron type "
210 "information connot be exported";
215 [&](
const auto& wmEntity)
217 std::shared_ptr<persistence::MemoryPersistenceStrategy> entityPersistenceStrategy(persistenceStrategy_);
220 id().withEntityName(wmEntity.id().entityName),
222 entityPersistenceStrategy);
224 ltmEntity.
store(wmEntity, simulatedVersion);