Go to the documentation of this file.
5 #include <Ice/Handle.h>
8 #include <RobotAPI/interface/armem/query.h>
14 template <
class _DerivedT,
class _QueryT>
35 for (
auto q : queries)
44 template <
class DerivedQueryT>
57 template <
class ParentDerivedT,
class ParentChildT>
65 template <
class T,
class ...Ts>
78 template <
class _DerivedT,
class _ChildT>
100 template <
class ...Ts>
114 template <
class DerivedT,
class QueryT,
class ChildT>
125 std::vector<typename ChildT::QueryT> childQueries;
126 for (
const auto& child : this->
_children)
128 for (
auto& query : child.buildQueries())
130 childQueries.push_back(query);
134 std::vector<QueryT> queries = this->
_queries;
135 for (
auto& query : queries)
145 virtual void _setChildQueries(
QueryT& query,
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