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(
113 [
this, &result, &query, ®ex](
const CoreSegmentT& coreSegment)
115 if (std::regex_search(coreSegment.name(), regex))
117 this->_processResult(result, coreSegment, query);
134 const armem::query::data::MemoryQuery& query)
const
138 if (child ==
nullptr)
140 child = &result.
addCoreSegment(coreSegment.name(), coreSegment.aronType());
143 childProcessor.process(*child, query.coreSegmentQueries, coreSegment);