5 #include <RobotAPI/interface/armem/query.h>
16 template <
class _CoreSegmentT,
class _ResultCoreSegmentT,
class _ChildProcessorT>
20 armem::query::data::CoreSegmentQuery>
25 armem::query::data::CoreSegmentQuery>;
51 const armem::query::data::CoreSegmentQuery& query,
54 if (
auto q =
dynamic_cast<const armem::query::data::core::All*
>(&query))
58 else if (
auto q =
dynamic_cast<const armem::query::data::core::Single*
>(&query))
62 else if (
auto q =
dynamic_cast<const armem::query::data::core::Regex*
>(&query))
74 const armem::query::data::core::All& query,
77 coreSegment.forEachProviderSegment(
84 const armem::query::data::core::Single& query,
87 if (
auto providerSegment = coreSegment.findProviderSegment(query.providerSegmentName))
95 const armem::query::data::core::Regex& query,
98 const std::regex regex(query.providerSegmentNameRegex);
99 coreSegment.forEachProviderSegment(
102 if (std::regex_search(providerSegment.name(), regex))
104 this->_processResult(result, providerSegment, query);
114 const armem::query::data::CoreSegmentQuery& query)
const
117 if (child ==
nullptr)
120 &result.addProviderSegment(providerSegment.name(), providerSegment.aronType());
122 childProcessor.process(*child, query.providerSegmentQueries, providerSegment);