// Copyright 2015 Open Source Robotics Foundation, Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #include #include #include #include "rclcpp/future_return_code.hpp" namespace rclcpp { std::ostream & operator<<(std::ostream & os, const rclcpp::FutureReturnCode & future_return_code) { return os << to_string(future_return_code); } std::string to_string(const rclcpp::FutureReturnCode & future_return_code) { using enum_type = std::underlying_type::type; std::string prefix = "Unknown enum value ("; std::string ret_as_string = std::to_string(static_cast(future_return_code)); switch (future_return_code) { case FutureReturnCode::SUCCESS: prefix = "SUCCESS ("; break; case FutureReturnCode::INTERRUPTED: prefix = "INTERRUPTED ("; break; case FutureReturnCode::TIMEOUT: prefix = "TIMEOUT ("; break; } return prefix + ret_as_string + ")"; } } // namespace rclcpp