Go to the documentation of this file.00001
00002 #ifndef GATEWAY_COMMS_SERVICE_REMOTE_H
00003 #define GATEWAY_COMMS_SERVICE_REMOTE_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 #include "gateway_comms/RemoteRule.h"
00020
00021
00022
00023 namespace gateway_comms
00024 {
00025 template <class ContainerAllocator>
00026 struct RemoteRequest_ {
00027 typedef RemoteRequest_<ContainerAllocator> Type;
00028
00029 RemoteRequest_()
00030 : remotes()
00031 , cancel(false)
00032 {
00033 }
00034
00035 RemoteRequest_(const ContainerAllocator& _alloc)
00036 : remotes(_alloc)
00037 , cancel(false)
00038 {
00039 }
00040
00041 typedef std::vector< ::gateway_comms::RemoteRule_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::gateway_comms::RemoteRule_<ContainerAllocator> >::other > _remotes_type;
00042 std::vector< ::gateway_comms::RemoteRule_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::gateway_comms::RemoteRule_<ContainerAllocator> >::other > remotes;
00043
00044 typedef uint8_t _cancel_type;
00045 uint8_t cancel;
00046
00047
00048 typedef boost::shared_ptr< ::gateway_comms::RemoteRequest_<ContainerAllocator> > Ptr;
00049 typedef boost::shared_ptr< ::gateway_comms::RemoteRequest_<ContainerAllocator> const> ConstPtr;
00050 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00051 };
00052 typedef ::gateway_comms::RemoteRequest_<std::allocator<void> > RemoteRequest;
00053
00054 typedef boost::shared_ptr< ::gateway_comms::RemoteRequest> RemoteRequestPtr;
00055 typedef boost::shared_ptr< ::gateway_comms::RemoteRequest const> RemoteRequestConstPtr;
00056
00057
00058 template <class ContainerAllocator>
00059 struct RemoteResponse_ {
00060 typedef RemoteResponse_<ContainerAllocator> Type;
00061
00062 RemoteResponse_()
00063 : result(0)
00064 , error_message()
00065 {
00066 }
00067
00068 RemoteResponse_(const ContainerAllocator& _alloc)
00069 : result(0)
00070 , error_message(_alloc)
00071 {
00072 }
00073
00074 typedef int8_t _result_type;
00075 int8_t result;
00076
00077 typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _error_message_type;
00078 std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > error_message;
00079
00080
00081 typedef boost::shared_ptr< ::gateway_comms::RemoteResponse_<ContainerAllocator> > Ptr;
00082 typedef boost::shared_ptr< ::gateway_comms::RemoteResponse_<ContainerAllocator> const> ConstPtr;
00083 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00084 };
00085 typedef ::gateway_comms::RemoteResponse_<std::allocator<void> > RemoteResponse;
00086
00087 typedef boost::shared_ptr< ::gateway_comms::RemoteResponse> RemoteResponsePtr;
00088 typedef boost::shared_ptr< ::gateway_comms::RemoteResponse const> RemoteResponseConstPtr;
00089
00090 struct Remote
00091 {
00092
00093 typedef RemoteRequest Request;
00094 typedef RemoteResponse Response;
00095 Request request;
00096 Response response;
00097
00098 typedef Request RequestType;
00099 typedef Response ResponseType;
00100 };
00101 }
00102
00103 namespace ros
00104 {
00105 namespace message_traits
00106 {
00107 template<class ContainerAllocator> struct IsMessage< ::gateway_comms::RemoteRequest_<ContainerAllocator> > : public TrueType {};
00108 template<class ContainerAllocator> struct IsMessage< ::gateway_comms::RemoteRequest_<ContainerAllocator> const> : public TrueType {};
00109 template<class ContainerAllocator>
00110 struct MD5Sum< ::gateway_comms::RemoteRequest_<ContainerAllocator> > {
00111 static const char* value()
00112 {
00113 return "e9d79fdaee662b9f88ad5ffedb506465";
00114 }
00115
00116 static const char* value(const ::gateway_comms::RemoteRequest_<ContainerAllocator> &) { return value(); }
00117 static const uint64_t static_value1 = 0xe9d79fdaee662b9fULL;
00118 static const uint64_t static_value2 = 0x88ad5ffedb506465ULL;
00119 };
00120
00121 template<class ContainerAllocator>
00122 struct DataType< ::gateway_comms::RemoteRequest_<ContainerAllocator> > {
00123 static const char* value()
00124 {
00125 return "gateway_comms/RemoteRequest";
00126 }
00127
00128 static const char* value(const ::gateway_comms::RemoteRequest_<ContainerAllocator> &) { return value(); }
00129 };
00130
00131 template<class ContainerAllocator>
00132 struct Definition< ::gateway_comms::RemoteRequest_<ContainerAllocator> > {
00133 static const char* value()
00134 {
00135 return "\n\
00136 \n\
00137 \n\
00138 \n\
00139 RemoteRule[] remotes\n\
00140 \n\
00141 \n\
00142 bool cancel\n\
00143 \n\
00144 \n\
00145 ================================================================================\n\
00146 MSG: gateway_comms/RemoteRule\n\
00147 # Definition for a flip. It represents either:\n\
00148 #\n\
00149 # 1) an existing flipped connection (from the local gateway)\n\
00150 # 2) a rule that is put on a watchlist\n\
00151 \n\
00152 # The target recipient of the flip\n\
00153 string gateway\n\
00154 \n\
00155 # Connection has the following parameters that need setting\n\
00156 # - name : fully qualified name of the connection (str)\n\
00157 # - type : connection type (str)\n\
00158 # \n\
00159 # Use one of the types defined in Connection string constants:\n\
00160 # (publisher, subscriber, service, action_client, action_server)\n\
00161 #\n\
00162 # - node : name of the node it originates from (str)(optional)\n\
00163 #\n\
00164 # Node name is necessary, for instance, if you have multiple subscribers\n\
00165 # publishing to a single topic. Most of the time it is not necessary,\n\
00166 # but in some cases it helps refine the rule. It helps refine the rule.\n\
00167 #\n\
00168 Rule rule\n\
00169 \n\
00170 ================================================================================\n\
00171 MSG: gateway_comms/Rule\n\
00172 # Standard gateway connection rule\n\
00173 \n\
00174 # type of connection (from gateway_comms.msg.Connection)\n\
00175 string type\n\
00176 \n\
00177 # this is the topic/service name or the action base name (a regex is supported)\n\
00178 string name \n\
00179 \n\
00180 # (optional) an optional node name can be provided. if node name is not provided\n\
00181 # then all nodes are matched (also supports regex)\n\
00182 string node\n\
00183 \n\
00184 ";
00185 }
00186
00187 static const char* value(const ::gateway_comms::RemoteRequest_<ContainerAllocator> &) { return value(); }
00188 };
00189
00190 }
00191 }
00192
00193
00194 namespace ros
00195 {
00196 namespace message_traits
00197 {
00198 template<class ContainerAllocator> struct IsMessage< ::gateway_comms::RemoteResponse_<ContainerAllocator> > : public TrueType {};
00199 template<class ContainerAllocator> struct IsMessage< ::gateway_comms::RemoteResponse_<ContainerAllocator> const> : public TrueType {};
00200 template<class ContainerAllocator>
00201 struct MD5Sum< ::gateway_comms::RemoteResponse_<ContainerAllocator> > {
00202 static const char* value()
00203 {
00204 return "cb1e85ae0c5f4b1c31221493724cc5aa";
00205 }
00206
00207 static const char* value(const ::gateway_comms::RemoteResponse_<ContainerAllocator> &) { return value(); }
00208 static const uint64_t static_value1 = 0xcb1e85ae0c5f4b1cULL;
00209 static const uint64_t static_value2 = 0x31221493724cc5aaULL;
00210 };
00211
00212 template<class ContainerAllocator>
00213 struct DataType< ::gateway_comms::RemoteResponse_<ContainerAllocator> > {
00214 static const char* value()
00215 {
00216 return "gateway_comms/RemoteResponse";
00217 }
00218
00219 static const char* value(const ::gateway_comms::RemoteResponse_<ContainerAllocator> &) { return value(); }
00220 };
00221
00222 template<class ContainerAllocator>
00223 struct Definition< ::gateway_comms::RemoteResponse_<ContainerAllocator> > {
00224 static const char* value()
00225 {
00226 return "\n\
00227 \n\
00228 \n\
00229 int8 result\n\
00230 string error_message\n\
00231 \n\
00232 \n\
00233 \n\
00234 ";
00235 }
00236
00237 static const char* value(const ::gateway_comms::RemoteResponse_<ContainerAllocator> &) { return value(); }
00238 };
00239
00240 }
00241 }
00242
00243 namespace ros
00244 {
00245 namespace serialization
00246 {
00247
00248 template<class ContainerAllocator> struct Serializer< ::gateway_comms::RemoteRequest_<ContainerAllocator> >
00249 {
00250 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00251 {
00252 stream.next(m.remotes);
00253 stream.next(m.cancel);
00254 }
00255
00256 ROS_DECLARE_ALLINONE_SERIALIZER;
00257 };
00258 }
00259 }
00260
00261
00262 namespace ros
00263 {
00264 namespace serialization
00265 {
00266
00267 template<class ContainerAllocator> struct Serializer< ::gateway_comms::RemoteResponse_<ContainerAllocator> >
00268 {
00269 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00270 {
00271 stream.next(m.result);
00272 stream.next(m.error_message);
00273 }
00274
00275 ROS_DECLARE_ALLINONE_SERIALIZER;
00276 };
00277 }
00278 }
00279
00280 namespace ros
00281 {
00282 namespace service_traits
00283 {
00284 template<>
00285 struct MD5Sum<gateway_comms::Remote> {
00286 static const char* value()
00287 {
00288 return "d2170021bdea1c8bfca632d3d43a6993";
00289 }
00290
00291 static const char* value(const gateway_comms::Remote&) { return value(); }
00292 };
00293
00294 template<>
00295 struct DataType<gateway_comms::Remote> {
00296 static const char* value()
00297 {
00298 return "gateway_comms/Remote";
00299 }
00300
00301 static const char* value(const gateway_comms::Remote&) { return value(); }
00302 };
00303
00304 template<class ContainerAllocator>
00305 struct MD5Sum<gateway_comms::RemoteRequest_<ContainerAllocator> > {
00306 static const char* value()
00307 {
00308 return "d2170021bdea1c8bfca632d3d43a6993";
00309 }
00310
00311 static const char* value(const gateway_comms::RemoteRequest_<ContainerAllocator> &) { return value(); }
00312 };
00313
00314 template<class ContainerAllocator>
00315 struct DataType<gateway_comms::RemoteRequest_<ContainerAllocator> > {
00316 static const char* value()
00317 {
00318 return "gateway_comms/Remote";
00319 }
00320
00321 static const char* value(const gateway_comms::RemoteRequest_<ContainerAllocator> &) { return value(); }
00322 };
00323
00324 template<class ContainerAllocator>
00325 struct MD5Sum<gateway_comms::RemoteResponse_<ContainerAllocator> > {
00326 static const char* value()
00327 {
00328 return "d2170021bdea1c8bfca632d3d43a6993";
00329 }
00330
00331 static const char* value(const gateway_comms::RemoteResponse_<ContainerAllocator> &) { return value(); }
00332 };
00333
00334 template<class ContainerAllocator>
00335 struct DataType<gateway_comms::RemoteResponse_<ContainerAllocator> > {
00336 static const char* value()
00337 {
00338 return "gateway_comms/Remote";
00339 }
00340
00341 static const char* value(const gateway_comms::RemoteResponse_<ContainerAllocator> &) { return value(); }
00342 };
00343
00344 }
00345 }
00346
00347 #endif // GATEWAY_COMMS_SERVICE_REMOTE_H
00348