Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef ROSCPP_TRANSPORT_HINTS_H
00029 #define ROSCPP_TRANSPORT_HINTS_H
00030
00031 #include "common.h"
00032 #include "ros/forwards.h"
00033
00034 #include <boost/lexical_cast.hpp>
00035
00036 namespace ros
00037 {
00038
00054 class ROSCPP_DECL TransportHints
00055 {
00056 public:
00060 TransportHints& reliable()
00061 {
00062 tcp();
00063
00064 return *this;
00065 }
00066
00070 TransportHints& tcp()
00071 {
00072 transports_.push_back("TCP");
00073 return *this;
00074 }
00075
00082 TransportHints& tcpNoDelay(bool nodelay = true)
00083 {
00084 options_["tcp_nodelay"] = nodelay ? "true" : "false";
00085 return *this;
00086 }
00087
00091 bool getTCPNoDelay()
00092 {
00093 M_string::iterator it = options_.find("tcp_nodelay");
00094 if (it == options_.end())
00095 {
00096 return false;
00097 }
00098
00099 const std::string& val = it->second;
00100 if (val == "true")
00101 {
00102 return true;
00103 }
00104
00105 return false;
00106 }
00107
00113 TransportHints& maxDatagramSize(int size)
00114 {
00115 options_["max_datagram_size"] = boost::lexical_cast<std::string>(size);
00116 return *this;
00117 }
00118
00123 int getMaxDatagramSize()
00124 {
00125 M_string::iterator it = options_.find("max_datagram_size");
00126 if (it == options_.end())
00127 {
00128 return 0;
00129 }
00130
00131 return boost::lexical_cast<int>(it->second);
00132 }
00133
00137 TransportHints& unreliable()
00138 {
00139 udp();
00140
00141 return *this;
00142 }
00143
00147 TransportHints& udp()
00148 {
00149 transports_.push_back("UDP");
00150 return *this;
00151 }
00152
00156 const V_string& getTransports() { return transports_; }
00160 const M_string& getOptions() { return options_; }
00161
00162 private:
00163 V_string transports_;
00164 M_string options_;
00165 };
00166
00167 }
00168
00169 #endif
roscpp
Author(s): Morgan Quigley, Josh Faust, Brian Gerkey, Troy Straszheim
autogenerated on Tue Mar 7 2017 03:44:47