Go to the documentation of this file.
5 #include <Ice/Handle.h>
7 #include <RobotAPI/interface/armem/query.h>
13 template <
class _DerivedT,
class _QueryT>
36 for (
auto q : queries)
44 template <
class DerivedQueryT>
58 template <
class ParentDerivedT,
class ParentChildT>
68 template <
class T,
class... Ts>
77 template <
class _DerivedT,
class _ChildT>
101 template <
class... Ts>
113 template <
class DerivedT,
class QueryT,
class ChildT>
121 virtual std::vector<QueryT>
124 std::vector<typename ChildT::QueryT> childQueries;
125 for (
const auto& child : this->
_children)
127 for (
auto& query : child.buildQueries())
129 childQueries.push_back(query);
133 std::vector<QueryT> queries = this->
_queries;
134 for (
auto& query : queries)
145 const std::vector<typename ChildT::QueryT>& childQueries)
const = 0;
virtual DerivedT & withID(const MemoryID &id)=0
DerivedQueryT & _addQuery()
ChildT & _addChild(const ChildT &child)
virtual std::vector< QueryT > buildQueries() const
virtual ~ParentSelectorOps()=default
std::vector< QueryT > _queries
virtual ~ChildSelectorOps()=default
void addQueries(const std::vector< IceInternal::Handle< QueryT >> &queries)
InnerSelectorOps()=default
virtual void _setChildQueries(QueryT &query, const std::vector< typename ChildT::QueryT > &childQueries) const =0
armem::query::data::EntityQueryPtr QueryT
void addQuery(const IceInternal::Handle< QueryT > &query)
ChildSelectorOps()=default
void _apply(T arg, Ts... args)
virtual DerivedT & all()=0
The query::Builder class provides a fluent-style specification of hierarchical queries.
ChildT & _addChild(Ts... args)
std::vector< ChildT > _children