EqualityFilter.h
Go to the documentation of this file.
1#pragma once
2
3#include <map>
4#include <vector>
5
6// Base Class
7#include "../Filter.h"
8
9// Aron
10#include <chrono>
11
13
15{
17 {
18 public:
19 static const constexpr char* NAME = "SnapshotEqualityFilter";
20
22
23 virtual bool accept(const armem::wm::EntitySnapshot& e, bool simulatedVersion) override;
24 void configure(const nlohmann::json& json) override;
25
27 std::string getName() override;
28
29 private:
30 bool checkSnapshotEquality(
31 const armem::wm::EntitySnapshot& oldSnapshot,
32 const armem::wm::EntitySnapshot& newSnapshot);
33 bool checkInstanceEquality(
34 const aron::data::VariantPtr& oldData,
35 const aron::data::VariantPtr& newData);
36 private:
37 std::map<MemoryID, long> timestampLastCommitInMs;
38 FilterStatistics stats;
39 std::unordered_map<std::string, armem::wm::EntitySnapshot> lastAcceptedSnapshots;
40 };
41} // namespace armarx::armem::server::ltm::processor::filter
virtual bool accept(const armem::wm::EntitySnapshot &e, bool simulatedVersion) override
Client-side working memory entity snapshot.
std::shared_ptr< Variant > VariantPtr