15 #ifndef RCLCPP__WAIT_SET_POLICIES__DETAIL__SYNCHRONIZATION_POLICY_COMMON_HPP_
16 #define RCLCPP__WAIT_SET_POLICIES__DETAIL__SYNCHRONIZATION_POLICY_COMMON_HPP_
23 namespace wait_set_policies
36 create_loop_predicate(
37 std::chrono::nanoseconds time_to_wait_ns,
38 std::chrono::steady_clock::time_point start)
40 if (time_to_wait_ns >= std::chrono::nanoseconds(0)) {
42 auto deadline = start + time_to_wait_ns;
43 return [deadline]() ->
bool {
return std::chrono::steady_clock::now() < deadline;};
46 return []() ->
bool {
return true;};
50 std::chrono::nanoseconds
51 calculate_time_left_to_wait(
52 std::chrono::nanoseconds original_time_to_wait_ns,
53 std::chrono::steady_clock::time_point start)
55 std::chrono::nanoseconds time_left_to_wait;
56 if (original_time_to_wait_ns < std::chrono::nanoseconds(0)) {
57 time_left_to_wait = original_time_to_wait_ns;
59 time_left_to_wait = original_time_to_wait_ns - (std::chrono::steady_clock::now() - start);
60 if (time_left_to_wait < std::chrono::nanoseconds(0)) {
61 time_left_to_wait = std::chrono::nanoseconds(0);
64 return time_left_to_wait;
Common structure for synchronization policies.
Versions of rosidl_typesupport_cpp::get_message_type_support_handle that handle adapted types.