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

ltm sets properties itself

parent 0168652f
No related branches found
No related tags found
No related merge requests found
......@@ -9,13 +9,14 @@
#include "CoreSegmentBase.h"
// ArmarX
#include <ArmarXCore/core/application/properties/Properties.h>
#include <ArmarXCore/core/time/TimeUtil.h>
#include <ArmarXCore/core/logging/LoggingUtil.h>
#include <RobotAPI/libraries/armem/core/MemoryID.h>
#include <RobotAPI/libraries/armem/core/wm/memory_definitions.h>
#include <RobotAPI/libraries/armem/core/wm/aron_conversions.h>
#include <RobotAPI/libraries/armem/core/operations.h>
#include <RobotAPI/libraries/armem/server/ltm/base/filter/Filter.h>
#include <RobotAPI/libraries/armem/server/wm/memory_definitions.h>
......@@ -48,21 +49,26 @@ namespace armarx::armem::server::ltm
}
/// append a wm::Memory instance to the ltm
void store(const armem::wm::Memory& memory, bool force = false)
void store(const armem::wm::Memory& memory)
{
TIMING_START(LTM_Memory_Append);
if (force or filter->accept(memory))
if (pipeline.memFilter->accept(memory))
{
_store(memory);
}
else
{
ARMARX_WARNING << deactivateSpam() << "Ignoring to put a Memory into the LTM because it got filtered.";
}
TIMING_END(LTM_Memory_Append);
}
/// append a wm::Memory instance to the ltm
void store(const armem::server::wm::Memory& serverMemory, bool force = false)
void store(const armem::server::wm::Memory& serverMemory)
{
wm::Memory memory;
memory.update(armem::toCommit(serverMemory));
this->store(memory, force);
this->store(memory);
}
/// iterate over all core segments of this ltm
......@@ -71,6 +77,10 @@ namespace armarx::armem::server::ltm
/// find core segment
virtual std::shared_ptr<CoreSegmentT> findCoreSegment(const std::string&) const = 0;
/// parameters
virtual void createPropertyDefinitions(PropertyDefinitionsPtr& properties, const std::string& prefix)
{}
/// get level name
static std::string getLevelName()
{
......@@ -84,8 +94,5 @@ namespace armarx::armem::server::ltm
protected:
mutable std::recursive_mutex ltm_mutex;
FilterPtr filter;
// ForgetterPtr forgetter;
};
} // namespace armarx::armem::server::ltm
......@@ -31,19 +31,14 @@ namespace armarx::armem::server::plugins
properties->optional(workingMemory.name(), prefix + "MemoryName", "Name of this memory server.");
}
if (longtermMemoryEnabled // if not explicitly set to false in constructor of component
and not properties->hasDefinition(prefix + "ltm.enabled"))
// stuff for ltm
if (longtermMemoryEnabled) // if not explicitly set to false in constructor of component (then we dont need the params)
{
// stuff for mongodb memory
properties->optional(longtermMemoryEnabled, prefix + "ltm.enabled");
/*properties->optional(longtermMemory.dbsettings.host, prefix + "ltm.dbhost", "Only set if you want to have a custom host. Takes the host from 'armarx memory start' if not set.");
properties->optional(longtermMemory.dbsettings.port, prefix + "ltm.dbport", "Only set if you want to have a custom port. Takes the port from 'armarx memory start' if not set.");
properties->optional(longtermMemory.dbsettings.user, prefix + "ltm.dbuser", "Only set if you want to have a custom user. Takes the user from 'armarx memory start' if not set.");
properties->optional(longtermMemory.dbsettings.password, prefix + "ltm.dbpassword", "Only set if you want to have a custom password. Takes the password from 'armarx memory start' if not set.");
properties->optional(longtermMemory.dbsettings.database, prefix + "ltm.dbdatabase", "The name of the database you want to use for this memory. You can have multiple memories in one database.");*/
// stuff if disk memory
properties->optional(longtermMemory.path, "ltm.storagepath", "The path to the memory storage.");
if (not properties->hasDefinition(prefix + "ltm.enabled"))
{
properties->optional(longtermMemoryEnabled, prefix + "ltm.enabled");
}
longtermMemory.createPropertyDefinitions(properties, "ltm.");
}
// Publish memory updates topic
......
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