selectors.cpp
Go to the documentation of this file.
1 #include "selectors.h"
2 
6 
9 
10 
11 namespace dq = ::armarx::armem::query::data;
12 
14 {
15  dq::EntityQuerySeq
17  {
18  return _queries;
19  }
20 
23  {
24  auto& q = _addQuery<dq::entity::All>();
25  (void)q;
26  return *this;
27  }
28 
31  {
32  auto& q = _addQuery<dq::entity::Single>();
33  toIce(q.timestamp, Time::Invalid());
34  return *this;
35  }
36 
39  {
40  auto& q = _addQuery<dq::entity::Single>();
41  toIce(q.timestamp, timestamp);
42  return *this;
43  }
44 
47  {
48  auto& q = _addQuery<dq::entity::TimeRange>();
49  toIce(q.minTimestamp, min);
50  toIce(q.maxTimestamp, max);
51  return *this;
52  }
53 
56  {
57  auto& q = _addQuery<dq::entity::TimeApprox>();
58  toIce(q.timestamp, timestamp);
59  toIce(q.eps, eps);
60  return *this;
61  }
62 
64  SnapshotSelector::indexRange(long first, long last)
65  {
66  auto& q = _addQuery<dq::entity::IndexRange>();
67  q.first = first;
68  q.last = last;
69  return *this;
70  }
71 
74  {
75  auto& q = _addQuery<dq::entity::BeforeOrAtTime>();
76  toIce(q.timestamp, timestamp);
77  return *this;
78  }
79 
81  SnapshotSelector::beforeTime(Time timestamp, long maxEntries)
82  {
83  using armarx::toIce;
84 
85  auto& q = _addQuery<dq::entity::BeforeTime>();
86  toIce(q.timestamp, timestamp);
87  toIce(q.maxEntries, maxEntries);
88  return *this;
89  }
90 
93  {
94  return _addChild();
95  }
96 
98  EntitySelector::snapshots(const ChildT& selector)
99  {
100  return _addChild(selector);
101  }
102 
103  EntitySelector&
105  {
106  auto& q = _addQuery<dq::provider::All>();
107  (void)q;
108  return *this;
109  }
110 
112  EntitySelector::withName(const std::string& name)
113  {
114  auto& q = _addQuery<dq::provider::Single>();
115  q.entityName = name;
116  return *this;
117  }
118 
120  EntitySelector::withNamesMatching(const std::string& regex)
121  {
122  auto& q = _addQuery<dq::provider::Regex>();
123  q.entityNameRegex = regex;
124  return *this;
125  }
126 
127  void
128  EntitySelector::_setChildQueries(dq::ProviderSegmentQueryPtr& query,
129  const dq::EntityQuerySeq& childQueries) const
130  {
131  query->entityQueries = childQueries;
132  }
133 
136  {
137  return _addChild();
138  }
139 
142  {
143  return _addChild(selector);
144  }
145 
148  {
149  auto& q = _addQuery<dq::core::All>();
150  (void)q;
151  return *this;
152  }
153 
155  ProviderSegmentSelector::withName(const std::string& name)
156  {
157  auto& q = _addQuery<dq::core::Single>();
158  q.providerSegmentName = name;
159  return *this;
160  }
161 
164  {
165  auto& q = _addQuery<dq::core::Regex>();
166  q.providerSegmentNameRegex = regex;
167  return *this;
168  }
169 
170  void
171  ProviderSegmentSelector::_setChildQueries(dq::CoreSegmentQueryPtr& query,
172  const dq::ProviderSegmentQuerySeq& childQueries) const
173  {
174  query->providerSegmentQueries = childQueries;
175  }
176 
179  {
180  return _addChild();
181  }
182 
185  {
186  return _addChild(selector);
187  }
188 
191  {
192  auto& q = _addQuery<dq::memory::All>();
193  (void)q;
194  return *this;
195  }
196 
198  CoreSegmentSelector::withName(const std::string& name)
199  {
200  auto& q = _addQuery<dq::memory::Single>();
201  q.coreSegmentName = name;
202  return *this;
203  }
204 
206  CoreSegmentSelector::withNamesMatching(const std::string& regex)
207  {
208  auto& q = _addQuery<dq::memory::Regex>();
209  q.coreSegmentNameRegex = regex;
210  return *this;
211  }
212 
213  void
214  CoreSegmentSelector::_setChildQueries(dq::MemoryQueryPtr& query,
215  const dq::CoreSegmentQuerySeq& childQueries) const
216  {
217  query->coreSegmentQueries = childQueries;
218  }
219 
220 } // namespace armarx::armem::client::query
armarx::armem::client::query::EntitySelector::all
EntitySelector & all() override
Definition: selectors.cpp:104
armarx::armem::client::query::ProviderSegmentSelector
Definition: selectors.h:79
armarx::armem::client::query::ProviderSegmentSelector::withNamesMatching
ProviderSegmentSelector & withNamesMatching(const std::string &regex) override
Definition: selectors.cpp:163
armarx::armem::client::query::SnapshotSelector::latest
SnapshotSelector & latest()
Definition: selectors.cpp:30
armarx::armem::client::query::ProviderSegmentSelector::entities
EntitySelector & entities()
Start specifying entities.
Definition: selectors.cpp:135
armarx::armem::client::query::CoreSegmentSelector::_setChildQueries
void _setChildQueries(armem::query::data::MemoryQueryPtr &query, const armem::query::data::CoreSegmentQuerySeq &childQueries) const override
Definition: selectors.cpp:214
armarx::armem::client::query::SnapshotSelector::timeRange
SnapshotSelector & timeRange(Time min, Time max)
Definition: selectors.cpp:46
armarx::armem::client::query::EntitySelector::snapshots
SnapshotSelector & snapshots()
Start specifying entity snapshots.
Definition: selectors.cpp:92
armarx::max
std::vector< T > max(const std::vector< T > &v1, const std::vector< T > &v2)
Definition: VectorHelpers.h:297
armarx::armem::client::query::SnapshotSelector::all
SnapshotSelector & all() override
Definition: selectors.cpp:22
ice_conversions.h
armarx::armem::client::query::CoreSegmentSelector::all
CoreSegmentSelector & all() override
Definition: selectors.cpp:190
armarx::armem::client::query::ProviderSegmentSelector::_setChildQueries
void _setChildQueries(armem::query::data::CoreSegmentQueryPtr &query, const armem::query::data::ProviderSegmentQuerySeq &childQueries) const override
Definition: selectors.cpp:171
armarx::armem::client::query::detail::ChildSelectorOps< SnapshotSelector, armem::query::data::EntityQueryPtr >::_queries
std::vector< QueryT > _queries
Definition: SelectorOps.h:53
armarx::armem::client::query::SnapshotSelector::beforeTime
SnapshotSelector & beforeTime(Time timestamp, long maxEntries=1)
Definition: selectors.cpp:81
armarx::armem::client::query::SnapshotSelector
Definition: selectors.h:11
armarx::toIce
void toIce(std::map< IceKeyT, IceValueT > &iceMap, const boost::container::flat_map< CppKeyT, CppValueT > &cppMap)
Definition: ice_conversions_boost_templates.h:15
armarx::armem::client::query
Definition: forward_declarations.h:6
armarx::armem::client::query::EntitySelector::withNamesMatching
EntitySelector & withNamesMatching(const std::string &regex) override
Definition: selectors.cpp:120
data
uint8_t data[1]
Definition: EtherCATFrame.h:68
selectors.h
armarx::armem::client::query::CoreSegmentSelector::withName
CoreSegmentSelector & withName(const std::string &name) override
Definition: selectors.cpp:198
ice_conversions.h
q
#define q
armarx::armem::client::query::SnapshotSelector::atTimeApprox
SnapshotSelector & atTimeApprox(Time timestamp, Duration eps)
Definition: selectors.cpp:55
armarx::core::time::DateTime
Represents a point in time.
Definition: DateTime.h:24
armarx::armem::client::query::SnapshotSelector::buildQueries
armem::query::data::EntityQuerySeq buildQueries() const
Definition: selectors.cpp:16
armarx::armem::client::query::EntitySelector::withName
EntitySelector & withName(const std::string &name) override
Definition: selectors.cpp:112
armarx::armem::client::query::ProviderSegmentSelector::withName
ProviderSegmentSelector & withName(const std::string &name) override
Definition: selectors.cpp:155
armarx::armem::client::query::SnapshotSelector::atTime
SnapshotSelector & atTime(Time timestamp)
Definition: selectors.cpp:38
armarx::armem::client::query::CoreSegmentSelector::withNamesMatching
CoreSegmentSelector & withNamesMatching(const std::string &regex) override
Definition: selectors.cpp:206
armarx::armem::client::query::SnapshotSelector::beforeOrAtTime
SnapshotSelector & beforeOrAtTime(Time timestamp)
Definition: selectors.cpp:73
armarx::min
std::vector< T > min(const std::vector< T > &v1, const std::vector< T > &v2)
Definition: VectorHelpers.h:327
armarx::armem::client::query::CoreSegmentSelector
Definition: selectors.h:118
armarx::core::time::Duration
Represents a duration.
Definition: Duration.h:16
ice_conversions_templates.h
armarx::armem::client::query::CoreSegmentSelector::providerSegments
ProviderSegmentSelector & providerSegments()
Start specifying provider segments.
Definition: selectors.cpp:178
armarx::armem::client::query::EntitySelector
Definition: selectors.h:39
armarx::armem::client::query::EntitySelector::_setChildQueries
void _setChildQueries(armem::query::data::ProviderSegmentQueryPtr &query, const armem::query::data::EntityQuerySeq &childQueries) const override
Definition: selectors.cpp:128
armarx::armem::client::query::SnapshotSelector::indexRange
SnapshotSelector & indexRange(long first, long last)
Definition: selectors.cpp:64
armarx::armem::client::query::ProviderSegmentSelector::all
ProviderSegmentSelector & all() override
Definition: selectors.cpp:147
armarx::armem::client::query::detail::ParentSelectorOps< EntitySelector, SnapshotSelector >::_addChild
ChildT & _addChild()
Definition: SelectorOps.h:90
armarx::core::time::DateTime::Invalid
static DateTime Invalid()
Definition: DateTime.cpp:57
armarx::armem::client::toIce
void toIce(armem::query::data::Input &ice, const QueryInput &input)
Definition: Query.cpp:49
ice_conversions.h
ice_conversions.h