.. _program_listing_file_include_rclcpp_network_flow_endpoint.hpp: Program Listing for File network_flow_endpoint.hpp ================================================== |exhale_lsh| :ref:`Return to documentation for file ` (``include/rclcpp/network_flow_endpoint.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp // Copyright 2020 Ericsson AB // // 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. #ifndef RCLCPP__NETWORK_FLOW_ENDPOINT_HPP_ #define RCLCPP__NETWORK_FLOW_ENDPOINT_HPP_ #include #include #include #include "rcl/network_flow_endpoints.h" #include "rclcpp/visibility_control.hpp" namespace rclcpp { class NetworkFlowEndpoint; RCLCPP_PUBLIC bool operator==(const NetworkFlowEndpoint & left, const NetworkFlowEndpoint & right); RCLCPP_PUBLIC bool operator!=(const NetworkFlowEndpoint & left, const NetworkFlowEndpoint & right); RCLCPP_PUBLIC std::ostream & operator<<(std::ostream & os, const NetworkFlowEndpoint & network_flow_endpoint); class NetworkFlowEndpoint { public: RCLCPP_PUBLIC explicit NetworkFlowEndpoint(const rcl_network_flow_endpoint_t & network_flow_endpoint) : transport_protocol_( rcl_network_flow_endpoint_get_transport_protocol_string(network_flow_endpoint. transport_protocol)), internet_protocol_( rcl_network_flow_endpoint_get_internet_protocol_string( network_flow_endpoint.internet_protocol)), transport_port_(network_flow_endpoint.transport_port), flow_label_(network_flow_endpoint.flow_label), dscp_(network_flow_endpoint.dscp), internet_address_(network_flow_endpoint.internet_address) { } RCLCPP_PUBLIC const std::string & transport_protocol() const; RCLCPP_PUBLIC const std::string & internet_protocol() const; RCLCPP_PUBLIC uint16_t transport_port() const; RCLCPP_PUBLIC uint32_t flow_label() const; RCLCPP_PUBLIC uint8_t dscp() const; RCLCPP_PUBLIC const std::string & internet_address() const; friend bool rclcpp::operator==( const NetworkFlowEndpoint & left, const NetworkFlowEndpoint & right); friend bool rclcpp::operator!=( const NetworkFlowEndpoint & left, const NetworkFlowEndpoint & right); friend std::ostream & rclcpp::operator<<( std::ostream & os, const NetworkFlowEndpoint & network_flow_endpoint); private: std::string transport_protocol_; std::string internet_protocol_; uint16_t transport_port_; uint32_t flow_label_; uint8_t dscp_; std::string internet_address_; }; } // namespace rclcpp #endif // RCLCPP__NETWORK_FLOW_ENDPOINT_HPP_