5#include <RobotAPI/interface/armem/query.h>
18 template <
class _MemoryT,
class _ResultMemoryT,
class _ChildProcessorT>
57 const armem::query::data::MemoryQuery&
query,
62 if (
auto q =
dynamic_cast<const armem::query::data::memory::All*
>(&
query))
66 else if (
auto q =
dynamic_cast<const armem::query::data::memory::Single*
>(&
query))
70 else if (
auto q =
dynamic_cast<const armem::query::data::memory::Regex*
>(&
query))
82 const armem::query::data::memory::All&
query,
93 const armem::query::data::memory::Single&
query,
98 if (
auto coreSegment =
memory.findCoreSegment(
query.coreSegmentName))
106 const armem::query::data::memory::Regex&
query,
111 const std::regex regex(
query.coreSegmentNameRegex);
112 memory.forEachCoreSegment(
115 if (std::regex_search(coreSegment.name(), regex))
134 const armem::query::data::MemoryQuery&
query)
const
138 if (child ==
nullptr)
140 child = &result.addCoreSegment(coreSegment.name(), coreSegment.aronType());
Indicates that an entity's history was queried, but is empty.
Base class for memory query processors.
_ResultMemoryT process(const armem::query::data::MemoryQuery &query, const _MemoryT &data) const
ResultMemoryT process(const armem::query::data::Input &input, const MemoryT &memory) const
MemoryQueryProcessorBase()
virtual void process(ResultMemoryT &result, const armem::query::data::MemoryQuery &query, const MemoryT &memory) const override
Process the query and populate result.
BaseQueryProcessorBase< _MemoryT, _ResultMemoryT, armem::query::data::MemoryQuery > Base
virtual bool _processAllowed(const armem::query::data::MemoryQuery &query) const
ChildProcessorT childProcessor
_ResultMemoryT ResultMemoryT
void _processResult(ResultMemoryT &result, const CoreSegmentT &coreSegment, const armem::query::data::MemoryQuery &query) const
virtual void process(ResultMemoryT &result, const armem::query::data::memory::All &query, const MemoryT &memory) const
virtual void process(ResultMemoryT &result, const armem::query::data::memory::Regex &query, const MemoryT &memory) const
typename ResultMemoryT::CoreSegmentT ResultCoreSegmentT
typename MemoryT::CoreSegmentT CoreSegmentT
_ChildProcessorT ChildProcessorT
MemoryQueryProcessorBase(ChildProcessorT &&childProcessor)
virtual void process(ResultMemoryT &result, const armem::query::data::memory::Single &query, const MemoryT &memory) const
Brief description of class memory.