00001
00002 #ifndef GATEWAY_COMMS_SERVICE_GATEWAYINFO_H
00003 #define GATEWAY_COMMS_SERVICE_GATEWAYINFO_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/Rule.h"
00022 #include "gateway_comms/Rule.h"
00023 #include "gateway_comms/RemoteRule.h"
00024 #include "gateway_comms/RemoteRule.h"
00025 #include "gateway_comms/RemoteRule.h"
00026 #include "gateway_comms/RemoteRule.h"
00027 #include "gateway_comms/RemoteRule.h"
00028
00029 namespace gateway_comms
00030 {
00031 template <class ContainerAllocator>
00032 struct GatewayInfoRequest_ {
00033 typedef GatewayInfoRequest_<ContainerAllocator> Type;
00034
00035 GatewayInfoRequest_()
00036 {
00037 }
00038
00039 GatewayInfoRequest_(const ContainerAllocator& _alloc)
00040 {
00041 }
00042
00043
00044 typedef boost::shared_ptr< ::gateway_comms::GatewayInfoRequest_<ContainerAllocator> > Ptr;
00045 typedef boost::shared_ptr< ::gateway_comms::GatewayInfoRequest_<ContainerAllocator> const> ConstPtr;
00046 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00047 };
00048 typedef ::gateway_comms::GatewayInfoRequest_<std::allocator<void> > GatewayInfoRequest;
00049
00050 typedef boost::shared_ptr< ::gateway_comms::GatewayInfoRequest> GatewayInfoRequestPtr;
00051 typedef boost::shared_ptr< ::gateway_comms::GatewayInfoRequest const> GatewayInfoRequestConstPtr;
00052
00053
00054 template <class ContainerAllocator>
00055 struct GatewayInfoResponse_ {
00056 typedef GatewayInfoResponse_<ContainerAllocator> Type;
00057
00058 GatewayInfoResponse_()
00059 : name()
00060 , connected(false)
00061 , hub_name()
00062 , firewall(false)
00063 , public_watchlist()
00064 , public_interface()
00065 , flipped_connections()
00066 , flip_watchlist()
00067 , flipped_in_connections()
00068 , pull_watchlist()
00069 , pulled_connections()
00070 {
00071 }
00072
00073 GatewayInfoResponse_(const ContainerAllocator& _alloc)
00074 : name(_alloc)
00075 , connected(false)
00076 , hub_name(_alloc)
00077 , firewall(false)
00078 , public_watchlist(_alloc)
00079 , public_interface(_alloc)
00080 , flipped_connections(_alloc)
00081 , flip_watchlist(_alloc)
00082 , flipped_in_connections(_alloc)
00083 , pull_watchlist(_alloc)
00084 , pulled_connections(_alloc)
00085 {
00086 }
00087
00088 typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _name_type;
00089 std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > name;
00090
00091 typedef uint8_t _connected_type;
00092 uint8_t connected;
00093
00094 typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _hub_name_type;
00095 std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > hub_name;
00096
00097 typedef uint8_t _firewall_type;
00098 uint8_t firewall;
00099
00100 typedef std::vector< ::gateway_comms::Rule_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::gateway_comms::Rule_<ContainerAllocator> >::other > _public_watchlist_type;
00101 std::vector< ::gateway_comms::Rule_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::gateway_comms::Rule_<ContainerAllocator> >::other > public_watchlist;
00102
00103 typedef std::vector< ::gateway_comms::Rule_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::gateway_comms::Rule_<ContainerAllocator> >::other > _public_interface_type;
00104 std::vector< ::gateway_comms::Rule_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::gateway_comms::Rule_<ContainerAllocator> >::other > public_interface;
00105
00106 typedef std::vector< ::gateway_comms::RemoteRule_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::gateway_comms::RemoteRule_<ContainerAllocator> >::other > _flipped_connections_type;
00107 std::vector< ::gateway_comms::RemoteRule_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::gateway_comms::RemoteRule_<ContainerAllocator> >::other > flipped_connections;
00108
00109 typedef std::vector< ::gateway_comms::RemoteRule_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::gateway_comms::RemoteRule_<ContainerAllocator> >::other > _flip_watchlist_type;
00110 std::vector< ::gateway_comms::RemoteRule_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::gateway_comms::RemoteRule_<ContainerAllocator> >::other > flip_watchlist;
00111
00112 typedef std::vector< ::gateway_comms::RemoteRule_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::gateway_comms::RemoteRule_<ContainerAllocator> >::other > _flipped_in_connections_type;
00113 std::vector< ::gateway_comms::RemoteRule_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::gateway_comms::RemoteRule_<ContainerAllocator> >::other > flipped_in_connections;
00114
00115 typedef std::vector< ::gateway_comms::RemoteRule_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::gateway_comms::RemoteRule_<ContainerAllocator> >::other > _pull_watchlist_type;
00116 std::vector< ::gateway_comms::RemoteRule_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::gateway_comms::RemoteRule_<ContainerAllocator> >::other > pull_watchlist;
00117
00118 typedef std::vector< ::gateway_comms::RemoteRule_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::gateway_comms::RemoteRule_<ContainerAllocator> >::other > _pulled_connections_type;
00119 std::vector< ::gateway_comms::RemoteRule_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::gateway_comms::RemoteRule_<ContainerAllocator> >::other > pulled_connections;
00120
00121
00122 typedef boost::shared_ptr< ::gateway_comms::GatewayInfoResponse_<ContainerAllocator> > Ptr;
00123 typedef boost::shared_ptr< ::gateway_comms::GatewayInfoResponse_<ContainerAllocator> const> ConstPtr;
00124 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00125 };
00126 typedef ::gateway_comms::GatewayInfoResponse_<std::allocator<void> > GatewayInfoResponse;
00127
00128 typedef boost::shared_ptr< ::gateway_comms::GatewayInfoResponse> GatewayInfoResponsePtr;
00129 typedef boost::shared_ptr< ::gateway_comms::GatewayInfoResponse const> GatewayInfoResponseConstPtr;
00130
00131 struct GatewayInfo
00132 {
00133
00134 typedef GatewayInfoRequest Request;
00135 typedef GatewayInfoResponse Response;
00136 Request request;
00137 Response response;
00138
00139 typedef Request RequestType;
00140 typedef Response ResponseType;
00141 };
00142 }
00143
00144 namespace ros
00145 {
00146 namespace message_traits
00147 {
00148 template<class ContainerAllocator> struct IsMessage< ::gateway_comms::GatewayInfoRequest_<ContainerAllocator> > : public TrueType {};
00149 template<class ContainerAllocator> struct IsMessage< ::gateway_comms::GatewayInfoRequest_<ContainerAllocator> const> : public TrueType {};
00150 template<class ContainerAllocator>
00151 struct MD5Sum< ::gateway_comms::GatewayInfoRequest_<ContainerAllocator> > {
00152 static const char* value()
00153 {
00154 return "d41d8cd98f00b204e9800998ecf8427e";
00155 }
00156
00157 static const char* value(const ::gateway_comms::GatewayInfoRequest_<ContainerAllocator> &) { return value(); }
00158 static const uint64_t static_value1 = 0xd41d8cd98f00b204ULL;
00159 static const uint64_t static_value2 = 0xe9800998ecf8427eULL;
00160 };
00161
00162 template<class ContainerAllocator>
00163 struct DataType< ::gateway_comms::GatewayInfoRequest_<ContainerAllocator> > {
00164 static const char* value()
00165 {
00166 return "gateway_comms/GatewayInfoRequest";
00167 }
00168
00169 static const char* value(const ::gateway_comms::GatewayInfoRequest_<ContainerAllocator> &) { return value(); }
00170 };
00171
00172 template<class ContainerAllocator>
00173 struct Definition< ::gateway_comms::GatewayInfoRequest_<ContainerAllocator> > {
00174 static const char* value()
00175 {
00176 return "\n\
00177 ";
00178 }
00179
00180 static const char* value(const ::gateway_comms::GatewayInfoRequest_<ContainerAllocator> &) { return value(); }
00181 };
00182
00183 template<class ContainerAllocator> struct IsFixedSize< ::gateway_comms::GatewayInfoRequest_<ContainerAllocator> > : public TrueType {};
00184 }
00185 }
00186
00187
00188 namespace ros
00189 {
00190 namespace message_traits
00191 {
00192 template<class ContainerAllocator> struct IsMessage< ::gateway_comms::GatewayInfoResponse_<ContainerAllocator> > : public TrueType {};
00193 template<class ContainerAllocator> struct IsMessage< ::gateway_comms::GatewayInfoResponse_<ContainerAllocator> const> : public TrueType {};
00194 template<class ContainerAllocator>
00195 struct MD5Sum< ::gateway_comms::GatewayInfoResponse_<ContainerAllocator> > {
00196 static const char* value()
00197 {
00198 return "edc5eb8189dbcdfeda797d1a085d5665";
00199 }
00200
00201 static const char* value(const ::gateway_comms::GatewayInfoResponse_<ContainerAllocator> &) { return value(); }
00202 static const uint64_t static_value1 = 0xedc5eb8189dbcdfeULL;
00203 static const uint64_t static_value2 = 0xda797d1a085d5665ULL;
00204 };
00205
00206 template<class ContainerAllocator>
00207 struct DataType< ::gateway_comms::GatewayInfoResponse_<ContainerAllocator> > {
00208 static const char* value()
00209 {
00210 return "gateway_comms/GatewayInfoResponse";
00211 }
00212
00213 static const char* value(const ::gateway_comms::GatewayInfoResponse_<ContainerAllocator> &) { return value(); }
00214 };
00215
00216 template<class ContainerAllocator>
00217 struct Definition< ::gateway_comms::GatewayInfoResponse_<ContainerAllocator> > {
00218 static const char* value()
00219 {
00220 return "\n\
00221 \n\
00222 string name\n\
00223 bool connected\n\
00224 string hub_name\n\
00225 bool firewall\n\
00226 \n\
00227 \n\
00228 \n\
00229 Rule[] public_watchlist\n\
00230 Rule[] public_interface\n\
00231 \n\
00232 \n\
00233 \n\
00234 RemoteRule[] flipped_connections\n\
00235 RemoteRule[] flip_watchlist\n\
00236 RemoteRule[] flipped_in_connections\n\
00237 \n\
00238 \n\
00239 \n\
00240 RemoteRule[] pull_watchlist\n\
00241 RemoteRule[] pulled_connections\n\
00242 \n\
00243 \n\
00244 \n\
00245 ================================================================================\n\
00246 MSG: gateway_comms/Rule\n\
00247 # Standard gateway connection rule\n\
00248 \n\
00249 # type of connection (from gateway_comms.msg.Connection)\n\
00250 string type\n\
00251 \n\
00252 # this is the topic/service name or the action base name (a regex is supported)\n\
00253 string name \n\
00254 \n\
00255 # (optional) an optional node name can be provided. if node name is not provided\n\
00256 # then all nodes are matched (also supports regex)\n\
00257 string node\n\
00258 \n\
00259 ================================================================================\n\
00260 MSG: gateway_comms/RemoteRule\n\
00261 # Definition for a flip. It represents either:\n\
00262 #\n\
00263 # 1) an existing flipped connection (from the local gateway)\n\
00264 # 2) a rule that is put on a watchlist\n\
00265 \n\
00266 # The target recipient of the flip\n\
00267 string gateway\n\
00268 \n\
00269 # Connection has the following parameters that need setting\n\
00270 # - name : fully qualified name of the connection (str)\n\
00271 # - type : connection type (str)\n\
00272 # \n\
00273 # Use one of the types defined in Connection string constants:\n\
00274 # (publisher, subscriber, service, action_client, action_server)\n\
00275 #\n\
00276 # - node : name of the node it originates from (str)(optional)\n\
00277 #\n\
00278 # Node name is necessary, for instance, if you have multiple subscribers\n\
00279 # publishing to a single topic. Most of the time it is not necessary,\n\
00280 # but in some cases it helps refine the rule. It helps refine the rule.\n\
00281 #\n\
00282 Rule rule\n\
00283 \n\
00284 ";
00285 }
00286
00287 static const char* value(const ::gateway_comms::GatewayInfoResponse_<ContainerAllocator> &) { return value(); }
00288 };
00289
00290 }
00291 }
00292
00293 namespace ros
00294 {
00295 namespace serialization
00296 {
00297
00298 template<class ContainerAllocator> struct Serializer< ::gateway_comms::GatewayInfoRequest_<ContainerAllocator> >
00299 {
00300 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00301 {
00302 }
00303
00304 ROS_DECLARE_ALLINONE_SERIALIZER;
00305 };
00306 }
00307 }
00308
00309
00310 namespace ros
00311 {
00312 namespace serialization
00313 {
00314
00315 template<class ContainerAllocator> struct Serializer< ::gateway_comms::GatewayInfoResponse_<ContainerAllocator> >
00316 {
00317 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00318 {
00319 stream.next(m.name);
00320 stream.next(m.connected);
00321 stream.next(m.hub_name);
00322 stream.next(m.firewall);
00323 stream.next(m.public_watchlist);
00324 stream.next(m.public_interface);
00325 stream.next(m.flipped_connections);
00326 stream.next(m.flip_watchlist);
00327 stream.next(m.flipped_in_connections);
00328 stream.next(m.pull_watchlist);
00329 stream.next(m.pulled_connections);
00330 }
00331
00332 ROS_DECLARE_ALLINONE_SERIALIZER;
00333 };
00334 }
00335 }
00336
00337 namespace ros
00338 {
00339 namespace service_traits
00340 {
00341 template<>
00342 struct MD5Sum<gateway_comms::GatewayInfo> {
00343 static const char* value()
00344 {
00345 return "edc5eb8189dbcdfeda797d1a085d5665";
00346 }
00347
00348 static const char* value(const gateway_comms::GatewayInfo&) { return value(); }
00349 };
00350
00351 template<>
00352 struct DataType<gateway_comms::GatewayInfo> {
00353 static const char* value()
00354 {
00355 return "gateway_comms/GatewayInfo";
00356 }
00357
00358 static const char* value(const gateway_comms::GatewayInfo&) { return value(); }
00359 };
00360
00361 template<class ContainerAllocator>
00362 struct MD5Sum<gateway_comms::GatewayInfoRequest_<ContainerAllocator> > {
00363 static const char* value()
00364 {
00365 return "edc5eb8189dbcdfeda797d1a085d5665";
00366 }
00367
00368 static const char* value(const gateway_comms::GatewayInfoRequest_<ContainerAllocator> &) { return value(); }
00369 };
00370
00371 template<class ContainerAllocator>
00372 struct DataType<gateway_comms::GatewayInfoRequest_<ContainerAllocator> > {
00373 static const char* value()
00374 {
00375 return "gateway_comms/GatewayInfo";
00376 }
00377
00378 static const char* value(const gateway_comms::GatewayInfoRequest_<ContainerAllocator> &) { return value(); }
00379 };
00380
00381 template<class ContainerAllocator>
00382 struct MD5Sum<gateway_comms::GatewayInfoResponse_<ContainerAllocator> > {
00383 static const char* value()
00384 {
00385 return "edc5eb8189dbcdfeda797d1a085d5665";
00386 }
00387
00388 static const char* value(const gateway_comms::GatewayInfoResponse_<ContainerAllocator> &) { return value(); }
00389 };
00390
00391 template<class ContainerAllocator>
00392 struct DataType<gateway_comms::GatewayInfoResponse_<ContainerAllocator> > {
00393 static const char* value()
00394 {
00395 return "gateway_comms/GatewayInfo";
00396 }
00397
00398 static const char* value(const gateway_comms::GatewayInfoResponse_<ContainerAllocator> &) { return value(); }
00399 };
00400
00401 }
00402 }
00403
00404 #endif // GATEWAY_COMMS_SERVICE_GATEWAYINFO_H
00405