7 #include <RobotAPI/interface/armem/query.h>
15 template <
class _Prov
iderSegmentT,
class _ResultProv
iderSegmentT,
class _ChildProcessorT>
17 public BaseQueryProcessorBase<_ProviderSegmentT, _ResultProviderSegmentT, armem::query::data::ProviderSegmentQuery>
47 const armem::query::data::ProviderSegmentQuery& query,
50 if (
auto q =
dynamic_cast<const armem::query::data::provider::All*
>(&query))
52 process(result, *
q, providerSegment);
54 else if (
auto q =
dynamic_cast<const armem::query::data::provider::Single*
>(&query))
56 process(result, *
q, providerSegment);
58 else if (
auto q =
dynamic_cast<const armem::query::data::provider::Regex*
>(&query))
60 process(result, *
q, providerSegment);
69 const armem::query::data::provider::All& query,
79 const armem::query::data::provider::Single& query,
82 if (
auto entity = providerSegment.
findEntity(query.entityName))
89 const armem::query::data::provider::Regex& query,
92 const std::regex regex(query.entityNameRegex);
95 if (std::regex_search(entity.name(), regex))
97 this->_processResult(result, entity, query);
108 const armem::query::data::ProviderSegmentQuery& query)
const
111 if (child ==
nullptr)
113 child = &result.
addEntity(entity.name());