diff --git a/source/RobotAPI/libraries/armem/client/query/query_fns.h b/source/RobotAPI/libraries/armem/client/query/query_fns.h index 40927ace4f6af3602b426689e82439c09507b666..f08ae23bc6b8b6bc7fb4ed99f9ac51ed570f556c 100644 --- a/source/RobotAPI/libraries/armem/client/query/query_fns.h +++ b/source/RobotAPI/libraries/armem/client/query/query_fns.h @@ -144,4 +144,24 @@ namespace armarx::armem::client::query_fns }; } -} + inline + std::function<void(query::SnapshotSelector&)> + beforeOrAtTime(Time time) + { + return [ = ](query::SnapshotSelector & selector) + { + selector.beforeOrAtTime(time); + }; + } + + inline + std::function<void(query::SnapshotSelector&)> + beforeTime(Time time, long nElements) + { + return [ = ](query::SnapshotSelector & selector) + { + selector.beforeTime(time, nElements); + }; + } + +} // namespace armarx::armem::client::query_fns diff --git a/source/RobotAPI/libraries/armem/client/query/selectors.cpp b/source/RobotAPI/libraries/armem/client/query/selectors.cpp index 8b2aa11dea44ad42cad732b76c65c87eb1cc7ad2..cc3a73829ab7c79eabc96c30b55c4ca350ac33ad 100644 --- a/source/RobotAPI/libraries/armem/client/query/selectors.cpp +++ b/source/RobotAPI/libraries/armem/client/query/selectors.cpp @@ -1,4 +1,5 @@ #include "selectors.h" +#include "RobotAPI/libraries/armem/core/ice_conversions.h" #include <RobotAPI/libraries/armem/core/workingmemory/ice_conversions.h> @@ -60,10 +61,19 @@ namespace armarx::armem::client::query } - SnapshotSelector& SnapshotSelector::beforeTimestamp(Time timestamp) + SnapshotSelector& SnapshotSelector::beforeOrAtTime(Time timestamp) + { + auto& q = _addQuery<dq::entity::BeforeOrAtTime>(); + toIce(q.timestamp, timestamp); + return *this; + } + + + SnapshotSelector& SnapshotSelector::beforeTime(Time timestamp, long maxEntries) { auto& q = _addQuery<dq::entity::BeforeTime>(); toIce(q.timestamp, timestamp); + toIce(q.maxEntries, maxEntries); return *this; } diff --git a/source/RobotAPI/libraries/armem/client/query/selectors.h b/source/RobotAPI/libraries/armem/client/query/selectors.h index 69fda84b54cbfc3c0c0395e23d33ebfebd7d9d1b..a1c314232099438f9498fbabb763e52c00abe862 100644 --- a/source/RobotAPI/libraries/armem/client/query/selectors.h +++ b/source/RobotAPI/libraries/armem/client/query/selectors.h @@ -27,8 +27,9 @@ namespace armarx::armem::client::query SnapshotSelector& latest(); SnapshotSelector& atTime(Time timestamp); SnapshotSelector& atTimeApprox(Time timestamp, Duration eps); - SnapshotSelector& beforeTimestamp(Time timestamp); + SnapshotSelector& beforeTime(Time timestamp, long maxEntries); + SnapshotSelector& beforeOrAtTime(Time timestamp); SnapshotSelector& timeRange(Time min, Time max); SnapshotSelector& indexRange(long first, long last);