Go to the documentation of this file.00001
00002 #ifndef GATEWAY_COMMS_SERVICE_REMOTEGATEWAYINFO_H
00003 #define GATEWAY_COMMS_SERVICE_REMOTEGATEWAYINFO_H
00004 #include <string>
00005 #include <vector>
00006 #include <map>
00007 #include <ostream>
00008 #include "ros/serialization.h"
00009 #include "ros/builtin_message_traits.h"
00010 #include "ros/message_operations.h"
00011 #include "ros/time.h"
00012
00013 #include "ros/macros.h"
00014
00015 #include "ros/assert.h"
00016
00017 #include "ros/service_traits.h"
00018
00019
00020
00021 #include "gateway_comms/RemoteGateway.h"
00022
00023 namespace gateway_comms
00024 {
00025 template <class ContainerAllocator>
00026 struct RemoteGatewayInfoRequest_ {
00027 typedef RemoteGatewayInfoRequest_<ContainerAllocator> Type;
00028
00029 RemoteGatewayInfoRequest_()
00030 : gateways()
00031 {
00032 }
00033
00034 RemoteGatewayInfoRequest_(const ContainerAllocator& _alloc)
00035 : gateways(_alloc)
00036 {
00037 }
00038
00039 typedef std::vector<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > , typename ContainerAllocator::template rebind<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::other > _gateways_type;
00040 std::vector<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > , typename ContainerAllocator::template rebind<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::other > gateways;
00041
00042
00043 typedef boost::shared_ptr< ::gateway_comms::RemoteGatewayInfoRequest_<ContainerAllocator> > Ptr;
00044 typedef boost::shared_ptr< ::gateway_comms::RemoteGatewayInfoRequest_<ContainerAllocator> const> ConstPtr;
00045 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00046 };
00047 typedef ::gateway_comms::RemoteGatewayInfoRequest_<std::allocator<void> > RemoteGatewayInfoRequest;
00048
00049 typedef boost::shared_ptr< ::gateway_comms::RemoteGatewayInfoRequest> RemoteGatewayInfoRequestPtr;
00050 typedef boost::shared_ptr< ::gateway_comms::RemoteGatewayInfoRequest const> RemoteGatewayInfoRequestConstPtr;
00051
00052
00053 template <class ContainerAllocator>
00054 struct RemoteGatewayInfoResponse_ {
00055 typedef RemoteGatewayInfoResponse_<ContainerAllocator> Type;
00056
00057 RemoteGatewayInfoResponse_()
00058 : gateways()
00059 {
00060 }
00061
00062 RemoteGatewayInfoResponse_(const ContainerAllocator& _alloc)
00063 : gateways(_alloc)
00064 {
00065 }
00066
00067 typedef std::vector< ::gateway_comms::RemoteGateway_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::gateway_comms::RemoteGateway_<ContainerAllocator> >::other > _gateways_type;
00068 std::vector< ::gateway_comms::RemoteGateway_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::gateway_comms::RemoteGateway_<ContainerAllocator> >::other > gateways;
00069
00070
00071 typedef boost::shared_ptr< ::gateway_comms::RemoteGatewayInfoResponse_<ContainerAllocator> > Ptr;
00072 typedef boost::shared_ptr< ::gateway_comms::RemoteGatewayInfoResponse_<ContainerAllocator> const> ConstPtr;
00073 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00074 };
00075 typedef ::gateway_comms::RemoteGatewayInfoResponse_<std::allocator<void> > RemoteGatewayInfoResponse;
00076
00077 typedef boost::shared_ptr< ::gateway_comms::RemoteGatewayInfoResponse> RemoteGatewayInfoResponsePtr;
00078 typedef boost::shared_ptr< ::gateway_comms::RemoteGatewayInfoResponse const> RemoteGatewayInfoResponseConstPtr;
00079
00080 struct RemoteGatewayInfo
00081 {
00082
00083 typedef RemoteGatewayInfoRequest Request;
00084 typedef RemoteGatewayInfoResponse Response;
00085 Request request;
00086 Response response;
00087
00088 typedef Request RequestType;
00089 typedef Response ResponseType;
00090 };
00091 }
00092
00093 namespace ros
00094 {
00095 namespace message_traits
00096 {
00097 template<class ContainerAllocator> struct IsMessage< ::gateway_comms::RemoteGatewayInfoRequest_<ContainerAllocator> > : public TrueType {};
00098 template<class ContainerAllocator> struct IsMessage< ::gateway_comms::RemoteGatewayInfoRequest_<ContainerAllocator> const> : public TrueType {};
00099 template<class ContainerAllocator>
00100 struct MD5Sum< ::gateway_comms::RemoteGatewayInfoRequest_<ContainerAllocator> > {
00101 static const char* value()
00102 {
00103 return "e005eaac1f4b29980f211758e562aa6e";
00104 }
00105
00106 static const char* value(const ::gateway_comms::RemoteGatewayInfoRequest_<ContainerAllocator> &) { return value(); }
00107 static const uint64_t static_value1 = 0xe005eaac1f4b2998ULL;
00108 static const uint64_t static_value2 = 0x0f211758e562aa6eULL;
00109 };
00110
00111 template<class ContainerAllocator>
00112 struct DataType< ::gateway_comms::RemoteGatewayInfoRequest_<ContainerAllocator> > {
00113 static const char* value()
00114 {
00115 return "gateway_comms/RemoteGatewayInfoRequest";
00116 }
00117
00118 static const char* value(const ::gateway_comms::RemoteGatewayInfoRequest_<ContainerAllocator> &) { return value(); }
00119 };
00120
00121 template<class ContainerAllocator>
00122 struct Definition< ::gateway_comms::RemoteGatewayInfoRequest_<ContainerAllocator> > {
00123 static const char* value()
00124 {
00125 return "\n\
00126 \n\
00127 string[] gateways\n\
00128 \n\
00129 ";
00130 }
00131
00132 static const char* value(const ::gateway_comms::RemoteGatewayInfoRequest_<ContainerAllocator> &) { return value(); }
00133 };
00134
00135 }
00136 }
00137
00138
00139 namespace ros
00140 {
00141 namespace message_traits
00142 {
00143 template<class ContainerAllocator> struct IsMessage< ::gateway_comms::RemoteGatewayInfoResponse_<ContainerAllocator> > : public TrueType {};
00144 template<class ContainerAllocator> struct IsMessage< ::gateway_comms::RemoteGatewayInfoResponse_<ContainerAllocator> const> : public TrueType {};
00145 template<class ContainerAllocator>
00146 struct MD5Sum< ::gateway_comms::RemoteGatewayInfoResponse_<ContainerAllocator> > {
00147 static const char* value()
00148 {
00149 return "6e3bf86807866e6071e885bbf00f5017";
00150 }
00151
00152 static const char* value(const ::gateway_comms::RemoteGatewayInfoResponse_<ContainerAllocator> &) { return value(); }
00153 static const uint64_t static_value1 = 0x6e3bf86807866e60ULL;
00154 static const uint64_t static_value2 = 0x71e885bbf00f5017ULL;
00155 };
00156
00157 template<class ContainerAllocator>
00158 struct DataType< ::gateway_comms::RemoteGatewayInfoResponse_<ContainerAllocator> > {
00159 static const char* value()
00160 {
00161 return "gateway_comms/RemoteGatewayInfoResponse";
00162 }
00163
00164 static const char* value(const ::gateway_comms::RemoteGatewayInfoResponse_<ContainerAllocator> &) { return value(); }
00165 };
00166
00167 template<class ContainerAllocator>
00168 struct Definition< ::gateway_comms::RemoteGatewayInfoResponse_<ContainerAllocator> > {
00169 static const char* value()
00170 {
00171 return "RemoteGateway[] gateways\n\
00172 \n\
00173 \n\
00174 ================================================================================\n\
00175 MSG: gateway_comms/RemoteGateway\n\
00176 ###### Gateway information ######\n\
00177 string name\n\
00178 #TODO blocking status,health\n\
00179 bool firewall\n\
00180 \n\
00181 ###### Public Interface ######\n\
00182 \n\
00183 Rule[] public_interface\n\
00184 \n\
00185 \n\
00186 ###### Flipped Interface ######\n\
00187 \n\
00188 # Flipped and pulled interfaces would be useful for debugging \n\
00189 # https://github.com/robotics-in-concert/rocon_multimaster/issues/84\n\
00190 \n\
00191 RemoteRule[] flipped_interface\n\
00192 RemoteRule[] pulled_interface\n\
00193 \n\
00194 ###### Foreign Interface ######\n\
00195 \n\
00196 # Q) Should we show these?\n\
00197 # A) Probably not, in the overall scheme of things, \n\
00198 # it doubles up the information from above\n\
00199 \n\
00200 # RemoteRule[] flipped_in_connections\n\
00201 # RemoteRule[] pulled_connections\n\
00202 \n\
00203 ================================================================================\n\
00204 MSG: gateway_comms/Rule\n\
00205 # Standard gateway connection rule\n\
00206 \n\
00207 # type of connection (from gateway_comms.msg.Connection)\n\
00208 string type\n\
00209 \n\
00210 # this is the topic/service name or the action base name (a regex is supported)\n\
00211 string name \n\
00212 \n\
00213 # (optional) an optional node name can be provided. if node name is not provided\n\
00214 # then all nodes are matched (also supports regex)\n\
00215 string node\n\
00216 \n\
00217 ================================================================================\n\
00218 MSG: gateway_comms/RemoteRule\n\
00219 # Definition for a flip. It represents either:\n\
00220 #\n\
00221 # 1) an existing flipped connection (from the local gateway)\n\
00222 # 2) a rule that is put on a watchlist\n\
00223 \n\
00224 # The target recipient of the flip\n\
00225 string gateway\n\
00226 \n\
00227 # Connection has the following parameters that need setting\n\
00228 # - name : fully qualified name of the connection (str)\n\
00229 # - type : connection type (str)\n\
00230 # \n\
00231 # Use one of the types defined in Connection string constants:\n\
00232 # (publisher, subscriber, service, action_client, action_server)\n\
00233 #\n\
00234 # - node : name of the node it originates from (str)(optional)\n\
00235 #\n\
00236 # Node name is necessary, for instance, if you have multiple subscribers\n\
00237 # publishing to a single topic. Most of the time it is not necessary,\n\
00238 # but in some cases it helps refine the rule. It helps refine the rule.\n\
00239 #\n\
00240 Rule rule\n\
00241 \n\
00242 ";
00243 }
00244
00245 static const char* value(const ::gateway_comms::RemoteGatewayInfoResponse_<ContainerAllocator> &) { return value(); }
00246 };
00247
00248 }
00249 }
00250
00251 namespace ros
00252 {
00253 namespace serialization
00254 {
00255
00256 template<class ContainerAllocator> struct Serializer< ::gateway_comms::RemoteGatewayInfoRequest_<ContainerAllocator> >
00257 {
00258 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00259 {
00260 stream.next(m.gateways);
00261 }
00262
00263 ROS_DECLARE_ALLINONE_SERIALIZER;
00264 };
00265 }
00266 }
00267
00268
00269 namespace ros
00270 {
00271 namespace serialization
00272 {
00273
00274 template<class ContainerAllocator> struct Serializer< ::gateway_comms::RemoteGatewayInfoResponse_<ContainerAllocator> >
00275 {
00276 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00277 {
00278 stream.next(m.gateways);
00279 }
00280
00281 ROS_DECLARE_ALLINONE_SERIALIZER;
00282 };
00283 }
00284 }
00285
00286 namespace ros
00287 {
00288 namespace service_traits
00289 {
00290 template<>
00291 struct MD5Sum<gateway_comms::RemoteGatewayInfo> {
00292 static const char* value()
00293 {
00294 return "ecc116b6ef6bd66e7ef838d80ea8716e";
00295 }
00296
00297 static const char* value(const gateway_comms::RemoteGatewayInfo&) { return value(); }
00298 };
00299
00300 template<>
00301 struct DataType<gateway_comms::RemoteGatewayInfo> {
00302 static const char* value()
00303 {
00304 return "gateway_comms/RemoteGatewayInfo";
00305 }
00306
00307 static const char* value(const gateway_comms::RemoteGatewayInfo&) { return value(); }
00308 };
00309
00310 template<class ContainerAllocator>
00311 struct MD5Sum<gateway_comms::RemoteGatewayInfoRequest_<ContainerAllocator> > {
00312 static const char* value()
00313 {
00314 return "ecc116b6ef6bd66e7ef838d80ea8716e";
00315 }
00316
00317 static const char* value(const gateway_comms::RemoteGatewayInfoRequest_<ContainerAllocator> &) { return value(); }
00318 };
00319
00320 template<class ContainerAllocator>
00321 struct DataType<gateway_comms::RemoteGatewayInfoRequest_<ContainerAllocator> > {
00322 static const char* value()
00323 {
00324 return "gateway_comms/RemoteGatewayInfo";
00325 }
00326
00327 static const char* value(const gateway_comms::RemoteGatewayInfoRequest_<ContainerAllocator> &) { return value(); }
00328 };
00329
00330 template<class ContainerAllocator>
00331 struct MD5Sum<gateway_comms::RemoteGatewayInfoResponse_<ContainerAllocator> > {
00332 static const char* value()
00333 {
00334 return "ecc116b6ef6bd66e7ef838d80ea8716e";
00335 }
00336
00337 static const char* value(const gateway_comms::RemoteGatewayInfoResponse_<ContainerAllocator> &) { return value(); }
00338 };
00339
00340 template<class ContainerAllocator>
00341 struct DataType<gateway_comms::RemoteGatewayInfoResponse_<ContainerAllocator> > {
00342 static const char* value()
00343 {
00344 return "gateway_comms/RemoteGatewayInfo";
00345 }
00346
00347 static const char* value(const gateway_comms::RemoteGatewayInfoResponse_<ContainerAllocator> &) { return value(); }
00348 };
00349
00350 }
00351 }
00352
00353 #endif // GATEWAY_COMMS_SERVICE_REMOTEGATEWAYINFO_H
00354