Skip to content
Snippets Groups Projects
Commit 810eb237 authored by Fabian Tërnava's avatar Fabian Tërnava
Browse files

consollidate removed instances to ltm (still WIP)

parent b7b31fb3
No related branches found
No related tags found
No related merge requests found
......@@ -186,17 +186,43 @@ namespace armarx::armem::server
result.snapshotID = updateResult.id;
result.timeArrived = update.timeArrived;
// also store in ltm if transfermode is set to always
// TODO: Move outside of loop?
if (longtermMemory)
for (const auto& snapshot : updateResult.removedSnapshots)
{
ARMARX_DEBUG << "The id " << snapshot.id() << " was removed from wm";
}
// TODO: Consollidate to ltm if onFilledTransfer is enabled (fabian.peller)
for (const auto& snapshot : updateResult.removedSnapshots)
// Consollidate to ltm
if (longtermMemory)
{
ARMARX_DEBUG << "The id " << snapshot.id() << " was removed from wm";
//ARMARX_IMPORTANT << longtermMemory->id().str();
//ARMARX_IMPORTANT << longtermMemory->getPath();
// Create Memory out of list TODO: make nicer
armem::wm::Memory m(longtermMemory->name());
for (const auto& snapshot : updateResult.removedSnapshots)
{
if (!m.hasCoreSegment(snapshot.id().coreSegmentName))
{
m.addCoreSegment(snapshot.id().coreSegmentName);
}
auto* c = m.findCoreSegment(snapshot.id().coreSegmentName);
if (!c->hasProviderSegment(snapshot.id().providerSegmentName))
{
c->addProviderSegment(snapshot.id().providerSegmentName);
}
auto* p = c->findProviderSegment(snapshot.id().providerSegmentName);
if (!p->hasEntity(snapshot.id().entityName))
{
p->addEntity(snapshot.id().entityName);
}
auto* e = p->findEntity(snapshot.id().entityName);
e->addSnapshot(snapshot);
}
longtermMemory->store(m);
longtermMemory->storeBuffer();
}
if (publishUpdates)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment