EntityQueryProcessorBase.h
Go to the documentation of this file.
1#pragma once
2
4
6
8{
9
10 template <class _EntityT, class _ResultEntityT>
11 class EntityQueryProcessorBase : public base::EntityQueryProcessorBase<_EntityT, _ResultEntityT>
12 {
13 protected:
15
16
17 public:
18 using EntityT = typename Base::EntityT;
22
23
24 public:
25 virtual ~EntityQueryProcessorBase() = default;
26
27 using Base::process;
28
29
30 protected:
31 void
32 addResultSnapshot(ResultEntityT& result, const EntitySnapshotT& snapshot) const override
33 {
34 snapshot.forEachInstance([](const typename EntitySnapshotT::EntityInstanceT& instance)
35 { instance.metadata().access(); });
36 EntitySnapshotT copy = snapshot;
37 result.addSnapshot(std::move(copy));
38 }
39 };
40} // namespace armarx::armem::server::query_proc::wm::detail
virtual void process(ResultEntityT &result, const armem::query::data::EntityQuery &query, const EntityT &entity) const override
Process the query and populate result.
void addResultSnapshot(ResultEntityT &result, const EntitySnapshotT &snapshot) const override
base::EntityQueryProcessorBase< _EntityT, _ResultEntityT > Base