15 #ifndef RCLCPP__DURATION_HPP_
16 #define RCLCPP__DURATION_HPP_
20 #include "builtin_interfaces/msg/duration.hpp"
21 #include "builtin_interfaces/msg/time.hpp"
23 #include "rclcpp/visibility_control.hpp"
40 Duration(int32_t seconds, uint32_t nanoseconds);
43 explicit Duration(std::chrono::nanoseconds nanoseconds);
47 template<
class Rep,
class Period>
49 Duration(
const std::chrono::duration<Rep, Period> & duration)
50 :
Duration(std::chrono::duration_cast<std::chrono::nanoseconds>(duration))
54 Duration(
const builtin_interfaces::msg::Duration & duration_msg);
66 operator builtin_interfaces::msg::Duration()
const;
73 operator=(
const builtin_interfaces::msg::Duration & duration_msg);
112 operator*(
double scale)
const;
115 operator*=(
double scale);
135 from_seconds(
double seconds);
142 from_rmw_time(rmw_time_t duration);
145 template<
class DurationT>
149 return std::chrono::duration_cast<DurationT>(std::chrono::nanoseconds(this->nanoseconds()));
163 builtin_interfaces::msg::Time
164 operator+(
const builtin_interfaces::msg::Time & lhs,
const rclcpp::Duration & rhs);
167 builtin_interfaces::msg::Time
168 operator-(
const builtin_interfaces::msg::Time & lhs,
const rclcpp::Duration & rhs);
DurationT to_chrono() const
Convert Duration into a std::chrono::Duration.
Versions of rosidl_typesupport_cpp::get_message_type_support_handle that handle adapted types.
RCLCPP_PUBLIC bool operator==(const NetworkFlowEndpoint &left, const NetworkFlowEndpoint &right)
Check if two NetworkFlowEndpoint instances are equal.
RCLCPP_PUBLIC bool operator!=(const NetworkFlowEndpoint &left, const NetworkFlowEndpoint &right)
Check if two NetworkFlowEndpoint instances are not equal.
A duration of time, measured in nanoseconds and its source.
rcutils_duration_value_t rcl_duration_value_t
A duration of time, measured in nanoseconds.