From 4f157d9b71d0e7dcd96ccb013f33c0f5bd4846b0 Mon Sep 17 00:00:00 2001 From: Fabian Peller-Konrad <fabian.peller-konrad@kit.edu> Date: Tue, 15 Feb 2022 21:34:16 +0100 Subject: [PATCH] added base classes for filter classes in ltm --- .../libraries/armem/server/CMakeLists.txt | 4 +- .../server/ltm/base/converter/Converter.cpp | 1 + .../server/ltm/base/converter/Converter.h | 32 ++++++++++++ .../ltm/base/converter/dict/Converter.cpp | 17 ++++++ .../ltm/base/converter/dict/Converter.h | 27 ++++------ .../converter/dict/bson/BsonConverter.cpp | 7 +-- .../base/converter/dict/bson/BsonConverter.h | 5 +- .../converter/dict/json/JsonConverter.cpp | 4 +- .../base/converter/dict/json/JsonConverter.h | 8 ++- .../ltm/base/converter/image/Converter.cpp | 17 ++++++ .../ltm/base/converter/image/Converter.h | 27 ++++------ .../base/converter/image/png/PngConverter.cpp | 7 ++- .../base/converter/image/png/PngConverter.h | 5 +- .../ltm/base/detail/BufferedMemoryBase.h | 52 +++++++++++-------- .../server/ltm/base/extractor/Extractor.h | 3 -- .../extractor/imageExtractor/ImageExtractor.h | 6 --- .../extractor/noExtractor/NoExtractor.cpp | 17 ------ .../base/extractor/noExtractor/NoExtractor.h | 19 ------- .../armem/server/ltm/base/filter/Filter.h | 6 --- .../filter/frequencyFilter/FrequencyFilter.h | 10 +--- 20 files changed, 140 insertions(+), 134 deletions(-) create mode 100644 source/RobotAPI/libraries/armem/server/ltm/base/converter/Converter.cpp create mode 100644 source/RobotAPI/libraries/armem/server/ltm/base/converter/Converter.h delete mode 100644 source/RobotAPI/libraries/armem/server/ltm/base/extractor/noExtractor/NoExtractor.cpp delete mode 100644 source/RobotAPI/libraries/armem/server/ltm/base/extractor/noExtractor/NoExtractor.h diff --git a/source/RobotAPI/libraries/armem/server/CMakeLists.txt b/source/RobotAPI/libraries/armem/server/CMakeLists.txt index 45b4dbc72..782e86c28 100644 --- a/source/RobotAPI/libraries/armem/server/CMakeLists.txt +++ b/source/RobotAPI/libraries/armem/server/CMakeLists.txt @@ -47,8 +47,8 @@ set(LIB_FILES ltm/base/extractor/Extractor.cpp ltm/base/extractor/imageExtractor/ImageExtractor.cpp - ltm/base/extractor/noExtractor/NoExtractor.cpp + ltm/base/converter/Converter.cpp ltm/base/converter/dict/Converter.cpp ltm/base/converter/dict/json/JsonConverter.cpp ltm/base/converter/dict/bson/BsonConverter.cpp @@ -119,8 +119,8 @@ set(LIB_HEADERS ltm/base/extractor/Extractor.h ltm/base/extractor/imageExtractor/ImageExtractor.h - ltm/base/extractor/noExtractor/NoExtractor.h + ltm/base/converter/Converter.h ltm/base/converter/dict/Converter.h ltm/base/converter/dict/json/JsonConverter.h ltm/base/converter/dict/bson/BsonConverter.h diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/converter/Converter.cpp b/source/RobotAPI/libraries/armem/server/ltm/base/converter/Converter.cpp new file mode 100644 index 000000000..fd719807e --- /dev/null +++ b/source/RobotAPI/libraries/armem/server/ltm/base/converter/Converter.cpp @@ -0,0 +1 @@ +#include "Converter.h" diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/converter/Converter.h b/source/RobotAPI/libraries/armem/server/ltm/base/converter/Converter.h new file mode 100644 index 000000000..1e01564f3 --- /dev/null +++ b/source/RobotAPI/libraries/armem/server/ltm/base/converter/Converter.h @@ -0,0 +1,32 @@ +#pragma once + +// STD/STL +#include <memory> + +// ArmarX +#include <RobotAPI/libraries/aron/core/data/variant/container/Dict.h> + +namespace armarx::armem::server::ltm +{ + class Converter + { + public: + enum class ConverterType + { + Str, + Binary + }; + + Converter(const ConverterType t, const std::string& s): + type(t), + suffix(s) + {} + virtual ~Converter() = default; + + virtual std::vector<unsigned char> convert(const aron::data::VariantPtr& data) = 0; + virtual aron::data::VariantPtr convert(const std::vector<unsigned char>& data) = 0; + + const ConverterType type; + const std::string suffix; + }; +} diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/Converter.cpp b/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/Converter.cpp index fd719807e..ea89e7dbc 100644 --- a/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/Converter.cpp +++ b/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/Converter.cpp @@ -1 +1,18 @@ #include "Converter.h" + +namespace armarx::armem::server::ltm +{ + + std::vector<unsigned char> DictConverter::convert(const aron::data::VariantPtr& data) + { + auto d = aron::data::Dict::DynamicCastAndCheck(data); + return _convert(d); + } + + aron::data::VariantPtr DictConverter::convert(const std::vector<unsigned char>& data) + { + auto d = _convert(data); + return d; + } + +} diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/Converter.h b/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/Converter.h index 776b7c05c..d2965ce0e 100644 --- a/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/Converter.h +++ b/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/Converter.h @@ -3,33 +3,26 @@ // STD/STL #include <memory> +// BaseClass +#include "../Converter.h" + // ArmarX #include <RobotAPI/libraries/aron/core/data/variant/container/Dict.h> namespace armarx::armem::server::ltm { - class DictConverter; - using DictConverterPtr = std::shared_ptr<DictConverter>; - - class DictConverter + class DictConverter : public Converter { public: - enum class ConverterType - { - Str, - Binary - }; + using Converter::Converter; - DictConverter(const ConverterType t, const std::string& s): - type(t), - suffix(s) - {} virtual ~DictConverter() = default; - virtual std::vector<unsigned char> convert(const aron::data::DictPtr& data) = 0; - virtual aron::data::DictPtr convert(const std::vector<unsigned char>& data) = 0; + std::vector<unsigned char> convert(const aron::data::VariantPtr& data) final; + aron::data::VariantPtr convert(const std::vector<unsigned char>& data) final; - const ConverterType type; - const std::string suffix; + protected: + virtual std::vector<unsigned char> _convert(const aron::data::DictPtr& data) = 0; + virtual aron::data::DictPtr _convert(const std::vector<unsigned char>& data) = 0; }; } diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/bson/BsonConverter.cpp b/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/bson/BsonConverter.cpp index e78913abd..f183f002f 100644 --- a/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/bson/BsonConverter.cpp +++ b/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/bson/BsonConverter.cpp @@ -10,7 +10,7 @@ namespace armarx::armem::server::ltm::converter::dict namespace bsoncxxbuilder = bsoncxx::builder::stream; namespace bsoncxxdoc = bsoncxx::document; - std::vector<unsigned char> BsonConverter::convert(const aron::data::DictPtr& data) + std::vector<unsigned char> BsonConverter::_convert(const aron::data::DictPtr& data) { std::vector<unsigned char> jsonVec = jsonConverter.convert(data); std::string json(jsonVec.begin(), jsonVec.end()); @@ -24,12 +24,13 @@ namespace armarx::armem::server::ltm::converter::dict return bson; } - aron::data::DictPtr BsonConverter::convert(const std::vector<unsigned char>& data) + aron::data::DictPtr BsonConverter::_convert(const std::vector<unsigned char>& data) { bsoncxx::document::view view(data.data(), data.size()); nlohmann::json json = bsoncxx::to_json(view); std::string str = json.dump(2); std::vector<unsigned char> jsonVec(str.begin(), str.end()); - return jsonConverter.convert(jsonVec); + auto v = jsonConverter.convert(jsonVec); + return aron::data::Dict::DynamicCast(v); } } diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/bson/BsonConverter.h b/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/bson/BsonConverter.h index 0d6f858b0..e00211110 100644 --- a/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/bson/BsonConverter.h +++ b/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/bson/BsonConverter.h @@ -18,8 +18,9 @@ namespace armarx::armem::server::ltm::converter::dict DictConverter(ConverterType::Binary, ".bson") {} - virtual std::vector<unsigned char> convert(const aron::data::DictPtr& data) override; - virtual aron::data::DictPtr convert(const std::vector<unsigned char>& data) override; + protected: + std::vector<unsigned char> _convert(const aron::data::DictPtr& data) final; + aron::data::DictPtr _convert(const std::vector<unsigned char>& data) final; private: JsonConverter jsonConverter; diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/json/JsonConverter.cpp b/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/json/JsonConverter.cpp index 379caf9b7..1847b8752 100644 --- a/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/json/JsonConverter.cpp +++ b/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/json/JsonConverter.cpp @@ -4,14 +4,14 @@ namespace armarx::armem::server::ltm::converter::dict { - std::vector<unsigned char> JsonConverter::convert(const aron::data::DictPtr& data) + std::vector<unsigned char> JsonConverter::_convert(const aron::data::DictPtr& data) { nlohmann::json j = aron::converter::AronNlohmannJSONConverter::ConvertToNlohmannJSON(data); auto str = j.dump(2); return std::vector<unsigned char>(str.begin(), str.end()); } - aron::data::DictPtr JsonConverter::convert(const std::vector<unsigned char>& data) + aron::data::DictPtr JsonConverter::_convert(const std::vector<unsigned char>& data) { std::string str(data.begin(), data.end()); nlohmann::json j = nlohmann::json::parse(str); diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/json/JsonConverter.h b/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/json/JsonConverter.h index fad44583f..8ef4cbc27 100644 --- a/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/json/JsonConverter.h +++ b/source/RobotAPI/libraries/armem/server/ltm/base/converter/dict/json/JsonConverter.h @@ -8,9 +8,6 @@ namespace armarx::armem::server::ltm::converter::dict { - class JsonConverter; - using JsonConverterPtr = std::shared_ptr<JsonConverter>; - class JsonConverter : public DictConverter { public: @@ -18,7 +15,8 @@ namespace armarx::armem::server::ltm::converter::dict DictConverter(ConverterType::Str, ".json") {} - virtual std::vector<unsigned char> convert(const aron::data::DictPtr& data) override; - virtual aron::data::DictPtr convert(const std::vector<unsigned char>& data) override; + protected: + std::vector<unsigned char> _convert(const aron::data::DictPtr& data) final; + aron::data::DictPtr _convert(const std::vector<unsigned char>& data) final; }; } diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/Converter.cpp b/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/Converter.cpp index fd719807e..a36db667d 100644 --- a/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/Converter.cpp +++ b/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/Converter.cpp @@ -1 +1,18 @@ #include "Converter.h" + +namespace armarx::armem::server::ltm +{ + + std::vector<unsigned char> ImageConverter::convert(const aron::data::VariantPtr& data) + { + auto d = aron::data::NDArray::DynamicCastAndCheck(data); + return _convert(d); + } + + aron::data::VariantPtr ImageConverter::convert(const std::vector<unsigned char>& data) + { + auto d = _convert(data); + return d; + } + +} diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/Converter.h b/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/Converter.h index 740757ef8..0dd01ad84 100644 --- a/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/Converter.h +++ b/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/Converter.h @@ -3,33 +3,26 @@ // STD/STL #include <memory> +// BaseClass +#include "../Converter.h" + // ArmarX #include <RobotAPI/libraries/aron/core/data/variant/complex/NDArray.h> namespace armarx::armem::server::ltm { - class ImageConverter; - using ImageConverterPtr = std::shared_ptr<ImageConverter>; - - class ImageConverter + class ImageConverter : public Converter { public: - enum class ConverterType - { - Str, - Binary - }; + using Converter::Converter; - ImageConverter(const ConverterType t, const std::string& s): - type(t), - suffix(s) - {} virtual ~ImageConverter() = default; - virtual std::vector<unsigned char> convert(const aron::data::NDArrayPtr& data) = 0; - virtual aron::data::NDArrayPtr convert(const std::vector<unsigned char>& data) = 0; + std::vector<unsigned char> convert(const aron::data::VariantPtr& data) final; + aron::data::VariantPtr convert(const std::vector<unsigned char>& data) final; - const ConverterType type; - const std::string suffix; + protected: + virtual std::vector<unsigned char> _convert(const aron::data::NDArrayPtr& data) = 0; + virtual aron::data::NDArrayPtr _convert(const std::vector<unsigned char>& data) = 0; }; } diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/png/PngConverter.cpp b/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/png/PngConverter.cpp index 3658def03..f2ab4d8db 100644 --- a/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/png/PngConverter.cpp +++ b/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/png/PngConverter.cpp @@ -10,7 +10,7 @@ namespace armarx::armem::server::ltm::converter::image { - std::vector<unsigned char> PngConverter::convert(const aron::data::NDArrayPtr& data) + std::vector<unsigned char> PngConverter::_convert(const aron::data::NDArrayPtr& data) { ARMARX_CHECK_NOT_NULL(data); @@ -20,10 +20,9 @@ namespace armarx::armem::server::ltm::converter::image return buffer; } - aron::data::NDArrayPtr PngConverter::convert(const std::vector<unsigned char>& data) + aron::data::NDArrayPtr PngConverter::_convert(const std::vector<unsigned char>& data) { cv::Mat img = cv::imdecode(data, cv::IMREAD_COLOR); - auto aron = aron::converter::AronOpenCVConverter::ConvertFromMat(img); - return aron; + return aron::converter::AronOpenCVConverter::ConvertFromMat(img); } } diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/png/PngConverter.h b/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/png/PngConverter.h index 13581518a..9aa35b6ae 100644 --- a/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/png/PngConverter.h +++ b/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/png/PngConverter.h @@ -15,7 +15,8 @@ namespace armarx::armem::server::ltm::converter::image ImageConverter(ConverterType::Str, ".png") {} - virtual std::vector<unsigned char> convert(const aron::data::NDArrayPtr& data) override; - virtual aron::data::NDArrayPtr convert(const std::vector<unsigned char>& data) override; + protected: + std::vector<unsigned char> _convert(const aron::data::NDArrayPtr& data) final; + aron::data::NDArrayPtr _convert(const std::vector<unsigned char>& data) final; }; } diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/detail/BufferedMemoryBase.h b/source/RobotAPI/libraries/armem/server/ltm/base/detail/BufferedMemoryBase.h index 29f57896b..025664c2f 100644 --- a/source/RobotAPI/libraries/armem/server/ltm/base/detail/BufferedMemoryBase.h +++ b/source/RobotAPI/libraries/armem/server/ltm/base/detail/BufferedMemoryBase.h @@ -13,49 +13,56 @@ namespace armarx::armem::server::ltm public: BufferedMemoryBase() : - Base() + BufferedMemoryBase({}) { } BufferedMemoryBase(const MemoryID& id) : - Base(id), - buffer(id) + Base(id) { + buffer = std::make_shared<armem::wm::Memory>(id); + to_store = std::make_shared<armem::wm::Memory>(id); } virtual ~BufferedMemoryBase() = default; armem::wm::Memory getBuffer() const { - return buffer; + std::lock_guard l(bufferMutex); + return *buffer; } void directlyStore(const armem::wm::Memory& memory) { TIMING_START(LTM_Memory_DirectlyStore); - if (!this->pipeline.memFreqFilter->accept(memory)) + for (auto& f : this->memoryFilters) { - ARMARX_WARNING << deactivateSpam() << "Ignoring to put a Memory into the LTM because it got filtered."; - return; - } - else - { - _directlyStore(memory); + if (!f.accept(memory)) + { + ARMARX_WARNING << deactivateSpam() << "Ignoring to put a Memory into the LTM because it got filtered."; + return; + } } + _directlyStore(memory); TIMING_END(LTM_Memory_DirectlyStore); } void storeBuffer() { - std::lock_guard l(bufferMutex); - if (buffer.empty()) + std::lock_guard l(storeMutex); + { + std::lock_guard l(bufferMutex); + to_store = buffer; + buffer = std::make_shared<armem::wm::Memory>(this->id()); + } + + if (to_store->empty()) { ARMARX_INFO << deactivateSpam() << "Cannot store an empty buffer. Ignoring."; return; } - this->directlyStore(buffer); - buffer.clear(); + this->directlyStore(*to_store); } virtual void createPropertyDefinitions(PropertyDefinitionsPtr& defs, const std::string& prefix) override @@ -71,7 +78,9 @@ namespace armarx::armem::server::ltm void _store(const armem::wm::Memory& memory) override { std::lock_guard l(bufferMutex); - buffer.append(memory); + buffer->append(memory); + + // create task if not already exists if (!task) { int waitingTimeMs = 1000.f / storeFrequency; @@ -81,12 +90,12 @@ namespace armarx::armem::server::ltm } protected: - - /// Internal memory for data consolidated from wm to ltm (buffer) + /// Internal memory for data consolidated from wm to ltm (double-buffer) /// The to-put-to-ltm buffer (contains data in plain text) - /// This buffer may still be filtered. + /// This buffer may still be filtered (e.g. snapshot filters). /// This means that it is not guaranteed that all data in the buffer will be stored in the ltm - armem::wm::Memory buffer; + std::shared_ptr<armem::wm::Memory> buffer; + std::shared_ptr<armem::wm::Memory> to_store; /// The periodic'task to store the content of the buffer to the ltm typename armarx::PeriodicTask<BufferedMemoryBase>::pointer_type task = nullptr; @@ -95,7 +104,8 @@ namespace armarx::armem::server::ltm float storeFrequency = 10; /// a mutex to access the buffer object - std::mutex bufferMutex; + mutable std::mutex bufferMutex; + mutable std::mutex storeMutex; }; } // namespace armarx::armem::server::ltm diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/extractor/Extractor.h b/source/RobotAPI/libraries/armem/server/ltm/base/extractor/Extractor.h index 6da839930..10647ccbe 100644 --- a/source/RobotAPI/libraries/armem/server/ltm/base/extractor/Extractor.h +++ b/source/RobotAPI/libraries/armem/server/ltm/base/extractor/Extractor.h @@ -9,9 +9,6 @@ namespace armarx::armem::server::ltm { - class Extractor; - typedef std::shared_ptr<Extractor> ExtractorPtr; - class Extractor { public: diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/extractor/imageExtractor/ImageExtractor.h b/source/RobotAPI/libraries/armem/server/ltm/base/extractor/imageExtractor/ImageExtractor.h index 901bebb8b..08161d3fc 100644 --- a/source/RobotAPI/libraries/armem/server/ltm/base/extractor/imageExtractor/ImageExtractor.h +++ b/source/RobotAPI/libraries/armem/server/ltm/base/extractor/imageExtractor/ImageExtractor.h @@ -7,9 +7,6 @@ namespace armarx::armem::server::ltm::extractor { - class ImageExtractor; - typedef std::shared_ptr<ImageExtractor> ImageExtractorPtr; - class ImageExtractorVisitor : public aron::data::RecursiveVariantVisitor { public: @@ -26,8 +23,5 @@ namespace armarx::armem::server::ltm::extractor virtual Extraction extract(aron::data::DictPtr& data) override; virtual aron::data::DictPtr merge(Extraction& encoding) override; - - public: - bool enabled; }; } diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/extractor/noExtractor/NoExtractor.cpp b/source/RobotAPI/libraries/armem/server/ltm/base/extractor/noExtractor/NoExtractor.cpp deleted file mode 100644 index 58f36e588..000000000 --- a/source/RobotAPI/libraries/armem/server/ltm/base/extractor/noExtractor/NoExtractor.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include "NoExtractor.h" - - -namespace armarx::armem::server::ltm::extractor -{ - Extractor::Extraction NoExtractor::extract(aron::data::DictPtr& data) - { - Extraction encoding; - encoding.dataWithoutExtraction = data; - return encoding; - } - - aron::data::DictPtr NoExtractor::merge(Extraction& encoding) - { - return encoding.dataWithoutExtraction; - } -} diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/extractor/noExtractor/NoExtractor.h b/source/RobotAPI/libraries/armem/server/ltm/base/extractor/noExtractor/NoExtractor.h deleted file mode 100644 index fdcc66684..000000000 --- a/source/RobotAPI/libraries/armem/server/ltm/base/extractor/noExtractor/NoExtractor.h +++ /dev/null @@ -1,19 +0,0 @@ -#pragma once - -// Base Class -#include "../Extractor.h" - -namespace armarx::armem::server::ltm::extractor -{ - class NoExtractor; - typedef std::shared_ptr<NoExtractor> NoExtractorPtr; - - class NoExtractor : public Extractor - { - public: - NoExtractor() = default; - - virtual Extraction extract(aron::data::DictPtr& data) override; - virtual aron::data::DictPtr merge(Extraction& encoding) override; - }; -} diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/filter/Filter.h b/source/RobotAPI/libraries/armem/server/ltm/base/filter/Filter.h index f5b068600..6d64ca98c 100644 --- a/source/RobotAPI/libraries/armem/server/ltm/base/filter/Filter.h +++ b/source/RobotAPI/libraries/armem/server/ltm/base/filter/Filter.h @@ -9,12 +9,6 @@ namespace armarx::armem::server::ltm { - class SnapshotFilter; - typedef std::shared_ptr<SnapshotFilter> SnapshotFilterPtr; - - class MemoryFilter; - typedef std::shared_ptr<MemoryFilter> MemoryFilterPtr; - class MemoryFilter { public: diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/filter/frequencyFilter/FrequencyFilter.h b/source/RobotAPI/libraries/armem/server/ltm/base/filter/frequencyFilter/FrequencyFilter.h index 2da5ea957..100ccf625 100644 --- a/source/RobotAPI/libraries/armem/server/ltm/base/filter/frequencyFilter/FrequencyFilter.h +++ b/source/RobotAPI/libraries/armem/server/ltm/base/filter/frequencyFilter/FrequencyFilter.h @@ -5,12 +5,6 @@ namespace armarx::armem::server::ltm::filter { - class SnapshotFrequencyFilter; - typedef std::shared_ptr<SnapshotFrequencyFilter> SnapshotFrequencyFilterPtr; - - class MemoryFrequencyFilter; - typedef std::shared_ptr<MemoryFrequencyFilter> MemoryFrequencyFilterPtr; - class MemoryFrequencyFilter : public MemoryFilter { @@ -35,9 +29,9 @@ namespace armarx::armem::server::ltm::filter virtual bool accept(const armem::wm::EntitySnapshot& e) override; public: - int waitingTimeInMs = 1000; + int waitingTimeInMs = -1; private: - std::unordered_map<MemoryID, long> timestampLastCommitInMs; + std::map<MemoryID, long> timestampLastCommitInMs; }; } -- GitLab