Accept taking an rvalue ref future in spin_until_future_complete (#971)

Signed-off-by: Ivan Santiago Paunovic <ivanpauno@ekumenlabs.com>
This commit is contained in:
Ivan Santiago Paunovic 2020-01-30 09:35:11 -03:00 committed by GitHub
parent 3ec882cd2d
commit c2b855897f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 5 deletions

View file

@ -223,7 +223,7 @@ public:
template<typename ResponseT, typename TimeRepT = int64_t, typename TimeT = std::milli> template<typename ResponseT, typename TimeRepT = int64_t, typename TimeT = std::milli>
FutureReturnCode FutureReturnCode
spin_until_future_complete( spin_until_future_complete(
std::shared_future<ResponseT> & future, const std::shared_future<ResponseT> & future,
std::chrono::duration<TimeRepT, TimeT> timeout = std::chrono::duration<TimeRepT, TimeT>(-1)) std::chrono::duration<TimeRepT, TimeT> timeout = std::chrono::duration<TimeRepT, TimeT>(-1))
{ {
// TODO(wjwwood): does not work recursively; can't call spin_node_until_future_complete // TODO(wjwwood): does not work recursively; can't call spin_node_until_future_complete

View file

@ -70,7 +70,7 @@ rclcpp::executor::FutureReturnCode
spin_node_until_future_complete( spin_node_until_future_complete(
rclcpp::executor::Executor & executor, rclcpp::executor::Executor & executor,
rclcpp::node_interfaces::NodeBaseInterface::SharedPtr node_ptr, rclcpp::node_interfaces::NodeBaseInterface::SharedPtr node_ptr,
std::shared_future<ResponseT> & future, const std::shared_future<ResponseT> & future,
std::chrono::duration<TimeRepT, TimeT> timeout = std::chrono::duration<TimeRepT, TimeT>(-1)) std::chrono::duration<TimeRepT, TimeT> timeout = std::chrono::duration<TimeRepT, TimeT>(-1))
{ {
// TODO(wjwwood): does not work recursively; can't call spin_node_until_future_complete // TODO(wjwwood): does not work recursively; can't call spin_node_until_future_complete
@ -87,7 +87,7 @@ rclcpp::executor::FutureReturnCode
spin_node_until_future_complete( spin_node_until_future_complete(
rclcpp::executor::Executor & executor, rclcpp::executor::Executor & executor,
std::shared_ptr<NodeT> node_ptr, std::shared_ptr<NodeT> node_ptr,
std::shared_future<ResponseT> & future, const std::shared_future<ResponseT> & future,
std::chrono::duration<TimeRepT, TimeT> timeout = std::chrono::duration<TimeRepT, TimeT>(-1)) std::chrono::duration<TimeRepT, TimeT> timeout = std::chrono::duration<TimeRepT, TimeT>(-1))
{ {
return rclcpp::executors::spin_node_until_future_complete( return rclcpp::executors::spin_node_until_future_complete(
@ -103,7 +103,7 @@ template<typename FutureT, typename TimeRepT = int64_t, typename TimeT = std::mi
rclcpp::executor::FutureReturnCode rclcpp::executor::FutureReturnCode
spin_until_future_complete( spin_until_future_complete(
rclcpp::node_interfaces::NodeBaseInterface::SharedPtr node_ptr, rclcpp::node_interfaces::NodeBaseInterface::SharedPtr node_ptr,
std::shared_future<FutureT> & future, const std::shared_future<FutureT> & future,
std::chrono::duration<TimeRepT, TimeT> timeout = std::chrono::duration<TimeRepT, TimeT>(-1)) std::chrono::duration<TimeRepT, TimeT> timeout = std::chrono::duration<TimeRepT, TimeT>(-1))
{ {
rclcpp::executors::SingleThreadedExecutor executor; rclcpp::executors::SingleThreadedExecutor executor;
@ -115,7 +115,7 @@ template<typename NodeT = rclcpp::Node, typename FutureT, typename TimeRepT = in
rclcpp::executor::FutureReturnCode rclcpp::executor::FutureReturnCode
spin_until_future_complete( spin_until_future_complete(
std::shared_ptr<NodeT> node_ptr, std::shared_ptr<NodeT> node_ptr,
std::shared_future<FutureT> & future, const std::shared_future<FutureT> & future,
std::chrono::duration<TimeRepT, TimeT> timeout = std::chrono::duration<TimeRepT, TimeT>(-1)) std::chrono::duration<TimeRepT, TimeT> timeout = std::chrono::duration<TimeRepT, TimeT>(-1))
{ {
return rclcpp::spin_until_future_complete(node_ptr->get_node_base_interface(), future, timeout); return rclcpp::spin_until_future_complete(node_ptr->get_node_base_interface(), future, timeout);