Go to the documentation of this file.00001
00002 #ifndef PR2_CLUTTER_HELPER_SERVICE_CLOUDPUB_H
00003 #define PR2_CLUTTER_HELPER_SERVICE_CLOUDPUB_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 "sensor_msgs/PointCloud.h"
00020
00021
00022
00023 namespace pr2_clutter_helper
00024 {
00025 template <class ContainerAllocator>
00026 struct CloudPubRequest_ {
00027 typedef CloudPubRequest_<ContainerAllocator> Type;
00028
00029 CloudPubRequest_()
00030 : cloud()
00031 , frame_id()
00032 {
00033 }
00034
00035 CloudPubRequest_(const ContainerAllocator& _alloc)
00036 : cloud(_alloc)
00037 , frame_id(_alloc)
00038 {
00039 }
00040
00041 typedef ::sensor_msgs::PointCloud_<ContainerAllocator> _cloud_type;
00042 ::sensor_msgs::PointCloud_<ContainerAllocator> cloud;
00043
00044 typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _frame_id_type;
00045 std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > frame_id;
00046
00047
00048 typedef boost::shared_ptr< ::pr2_clutter_helper::CloudPubRequest_<ContainerAllocator> > Ptr;
00049 typedef boost::shared_ptr< ::pr2_clutter_helper::CloudPubRequest_<ContainerAllocator> const> ConstPtr;
00050 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00051 };
00052 typedef ::pr2_clutter_helper::CloudPubRequest_<std::allocator<void> > CloudPubRequest;
00053
00054 typedef boost::shared_ptr< ::pr2_clutter_helper::CloudPubRequest> CloudPubRequestPtr;
00055 typedef boost::shared_ptr< ::pr2_clutter_helper::CloudPubRequest const> CloudPubRequestConstPtr;
00056
00057
00058 template <class ContainerAllocator>
00059 struct CloudPubResponse_ {
00060 typedef CloudPubResponse_<ContainerAllocator> Type;
00061
00062 CloudPubResponse_()
00063 : success(false)
00064 {
00065 }
00066
00067 CloudPubResponse_(const ContainerAllocator& _alloc)
00068 : success(false)
00069 {
00070 }
00071
00072 typedef uint8_t _success_type;
00073 uint8_t success;
00074
00075
00076 typedef boost::shared_ptr< ::pr2_clutter_helper::CloudPubResponse_<ContainerAllocator> > Ptr;
00077 typedef boost::shared_ptr< ::pr2_clutter_helper::CloudPubResponse_<ContainerAllocator> const> ConstPtr;
00078 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00079 };
00080 typedef ::pr2_clutter_helper::CloudPubResponse_<std::allocator<void> > CloudPubResponse;
00081
00082 typedef boost::shared_ptr< ::pr2_clutter_helper::CloudPubResponse> CloudPubResponsePtr;
00083 typedef boost::shared_ptr< ::pr2_clutter_helper::CloudPubResponse const> CloudPubResponseConstPtr;
00084
00085 struct CloudPub
00086 {
00087
00088 typedef CloudPubRequest Request;
00089 typedef CloudPubResponse Response;
00090 Request request;
00091 Response response;
00092
00093 typedef Request RequestType;
00094 typedef Response ResponseType;
00095 };
00096 }
00097
00098 namespace ros
00099 {
00100 namespace message_traits
00101 {
00102 template<class ContainerAllocator> struct IsMessage< ::pr2_clutter_helper::CloudPubRequest_<ContainerAllocator> > : public TrueType {};
00103 template<class ContainerAllocator> struct IsMessage< ::pr2_clutter_helper::CloudPubRequest_<ContainerAllocator> const> : public TrueType {};
00104 template<class ContainerAllocator>
00105 struct MD5Sum< ::pr2_clutter_helper::CloudPubRequest_<ContainerAllocator> > {
00106 static const char* value()
00107 {
00108 return "d99a7dcc42775a367b2286c9b28aaf61";
00109 }
00110
00111 static const char* value(const ::pr2_clutter_helper::CloudPubRequest_<ContainerAllocator> &) { return value(); }
00112 static const uint64_t static_value1 = 0xd99a7dcc42775a36ULL;
00113 static const uint64_t static_value2 = 0x7b2286c9b28aaf61ULL;
00114 };
00115
00116 template<class ContainerAllocator>
00117 struct DataType< ::pr2_clutter_helper::CloudPubRequest_<ContainerAllocator> > {
00118 static const char* value()
00119 {
00120 return "pr2_clutter_helper/CloudPubRequest";
00121 }
00122
00123 static const char* value(const ::pr2_clutter_helper::CloudPubRequest_<ContainerAllocator> &) { return value(); }
00124 };
00125
00126 template<class ContainerAllocator>
00127 struct Definition< ::pr2_clutter_helper::CloudPubRequest_<ContainerAllocator> > {
00128 static const char* value()
00129 {
00130 return "sensor_msgs/PointCloud cloud\n\
00131 string frame_id\n\
00132 \n\
00133 \n\
00134 \n\
00135 \n\
00136 ================================================================================\n\
00137 MSG: sensor_msgs/PointCloud\n\
00138 # This message holds a collection of 3d points, plus optional additional\n\
00139 # information about each point.\n\
00140 \n\
00141 # Time of sensor data acquisition, coordinate frame ID.\n\
00142 Header header\n\
00143 \n\
00144 # Array of 3d points. Each Point32 should be interpreted as a 3d point\n\
00145 # in the frame given in the header.\n\
00146 geometry_msgs/Point32[] points\n\
00147 \n\
00148 # Each channel should have the same number of elements as points array,\n\
00149 # and the data in each channel should correspond 1:1 with each point.\n\
00150 # Channel names in common practice are listed in ChannelFloat32.msg.\n\
00151 ChannelFloat32[] channels\n\
00152 \n\
00153 ================================================================================\n\
00154 MSG: std_msgs/Header\n\
00155 # Standard metadata for higher-level stamped data types.\n\
00156 # This is generally used to communicate timestamped data \n\
00157 # in a particular coordinate frame.\n\
00158 # \n\
00159 # sequence ID: consecutively increasing ID \n\
00160 uint32 seq\n\
00161 #Two-integer timestamp that is expressed as:\n\
00162 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00163 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00164 # time-handling sugar is provided by the client library\n\
00165 time stamp\n\
00166 #Frame this data is associated with\n\
00167 # 0: no frame\n\
00168 # 1: global frame\n\
00169 string frame_id\n\
00170 \n\
00171 ================================================================================\n\
00172 MSG: geometry_msgs/Point32\n\
00173 # This contains the position of a point in free space(with 32 bits of precision).\n\
00174 # It is recommeded to use Point wherever possible instead of Point32. \n\
00175 # \n\
00176 # This recommendation is to promote interoperability. \n\
00177 #\n\
00178 # This message is designed to take up less space when sending\n\
00179 # lots of points at once, as in the case of a PointCloud. \n\
00180 \n\
00181 float32 x\n\
00182 float32 y\n\
00183 float32 z\n\
00184 ================================================================================\n\
00185 MSG: sensor_msgs/ChannelFloat32\n\
00186 # This message is used by the PointCloud message to hold optional data\n\
00187 # associated with each point in the cloud. The length of the values\n\
00188 # array should be the same as the length of the points array in the\n\
00189 # PointCloud, and each value should be associated with the corresponding\n\
00190 # point.\n\
00191 \n\
00192 # Channel names in existing practice include:\n\
00193 # \"u\", \"v\" - row and column (respectively) in the left stereo image.\n\
00194 # This is opposite to usual conventions but remains for\n\
00195 # historical reasons. The newer PointCloud2 message has no\n\
00196 # such problem.\n\
00197 # \"rgb\" - For point clouds produced by color stereo cameras. uint8\n\
00198 # (R,G,B) values packed into the least significant 24 bits,\n\
00199 # in order.\n\
00200 # \"intensity\" - laser or pixel intensity.\n\
00201 # \"distance\"\n\
00202 \n\
00203 # The channel name should give semantics of the channel (e.g.\n\
00204 # \"intensity\" instead of \"value\").\n\
00205 string name\n\
00206 \n\
00207 # The values array should be 1-1 with the elements of the associated\n\
00208 # PointCloud.\n\
00209 float32[] values\n\
00210 \n\
00211 ";
00212 }
00213
00214 static const char* value(const ::pr2_clutter_helper::CloudPubRequest_<ContainerAllocator> &) { return value(); }
00215 };
00216
00217 }
00218 }
00219
00220
00221 namespace ros
00222 {
00223 namespace message_traits
00224 {
00225 template<class ContainerAllocator> struct IsMessage< ::pr2_clutter_helper::CloudPubResponse_<ContainerAllocator> > : public TrueType {};
00226 template<class ContainerAllocator> struct IsMessage< ::pr2_clutter_helper::CloudPubResponse_<ContainerAllocator> const> : public TrueType {};
00227 template<class ContainerAllocator>
00228 struct MD5Sum< ::pr2_clutter_helper::CloudPubResponse_<ContainerAllocator> > {
00229 static const char* value()
00230 {
00231 return "358e233cde0c8a8bcfea4ce193f8fc15";
00232 }
00233
00234 static const char* value(const ::pr2_clutter_helper::CloudPubResponse_<ContainerAllocator> &) { return value(); }
00235 static const uint64_t static_value1 = 0x358e233cde0c8a8bULL;
00236 static const uint64_t static_value2 = 0xcfea4ce193f8fc15ULL;
00237 };
00238
00239 template<class ContainerAllocator>
00240 struct DataType< ::pr2_clutter_helper::CloudPubResponse_<ContainerAllocator> > {
00241 static const char* value()
00242 {
00243 return "pr2_clutter_helper/CloudPubResponse";
00244 }
00245
00246 static const char* value(const ::pr2_clutter_helper::CloudPubResponse_<ContainerAllocator> &) { return value(); }
00247 };
00248
00249 template<class ContainerAllocator>
00250 struct Definition< ::pr2_clutter_helper::CloudPubResponse_<ContainerAllocator> > {
00251 static const char* value()
00252 {
00253 return "bool success\n\
00254 \n\
00255 \n\
00256 ";
00257 }
00258
00259 static const char* value(const ::pr2_clutter_helper::CloudPubResponse_<ContainerAllocator> &) { return value(); }
00260 };
00261
00262 template<class ContainerAllocator> struct IsFixedSize< ::pr2_clutter_helper::CloudPubResponse_<ContainerAllocator> > : public TrueType {};
00263 }
00264 }
00265
00266 namespace ros
00267 {
00268 namespace serialization
00269 {
00270
00271 template<class ContainerAllocator> struct Serializer< ::pr2_clutter_helper::CloudPubRequest_<ContainerAllocator> >
00272 {
00273 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00274 {
00275 stream.next(m.cloud);
00276 stream.next(m.frame_id);
00277 }
00278
00279 ROS_DECLARE_ALLINONE_SERIALIZER;
00280 };
00281 }
00282 }
00283
00284
00285 namespace ros
00286 {
00287 namespace serialization
00288 {
00289
00290 template<class ContainerAllocator> struct Serializer< ::pr2_clutter_helper::CloudPubResponse_<ContainerAllocator> >
00291 {
00292 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00293 {
00294 stream.next(m.success);
00295 }
00296
00297 ROS_DECLARE_ALLINONE_SERIALIZER;
00298 };
00299 }
00300 }
00301
00302 namespace ros
00303 {
00304 namespace service_traits
00305 {
00306 template<>
00307 struct MD5Sum<pr2_clutter_helper::CloudPub> {
00308 static const char* value()
00309 {
00310 return "bada63e92e729ed3b402a36028719f44";
00311 }
00312
00313 static const char* value(const pr2_clutter_helper::CloudPub&) { return value(); }
00314 };
00315
00316 template<>
00317 struct DataType<pr2_clutter_helper::CloudPub> {
00318 static const char* value()
00319 {
00320 return "pr2_clutter_helper/CloudPub";
00321 }
00322
00323 static const char* value(const pr2_clutter_helper::CloudPub&) { return value(); }
00324 };
00325
00326 template<class ContainerAllocator>
00327 struct MD5Sum<pr2_clutter_helper::CloudPubRequest_<ContainerAllocator> > {
00328 static const char* value()
00329 {
00330 return "bada63e92e729ed3b402a36028719f44";
00331 }
00332
00333 static const char* value(const pr2_clutter_helper::CloudPubRequest_<ContainerAllocator> &) { return value(); }
00334 };
00335
00336 template<class ContainerAllocator>
00337 struct DataType<pr2_clutter_helper::CloudPubRequest_<ContainerAllocator> > {
00338 static const char* value()
00339 {
00340 return "pr2_clutter_helper/CloudPub";
00341 }
00342
00343 static const char* value(const pr2_clutter_helper::CloudPubRequest_<ContainerAllocator> &) { return value(); }
00344 };
00345
00346 template<class ContainerAllocator>
00347 struct MD5Sum<pr2_clutter_helper::CloudPubResponse_<ContainerAllocator> > {
00348 static const char* value()
00349 {
00350 return "bada63e92e729ed3b402a36028719f44";
00351 }
00352
00353 static const char* value(const pr2_clutter_helper::CloudPubResponse_<ContainerAllocator> &) { return value(); }
00354 };
00355
00356 template<class ContainerAllocator>
00357 struct DataType<pr2_clutter_helper::CloudPubResponse_<ContainerAllocator> > {
00358 static const char* value()
00359 {
00360 return "pr2_clutter_helper/CloudPub";
00361 }
00362
00363 static const char* value(const pr2_clutter_helper::CloudPubResponse_<ContainerAllocator> &) { return value(); }
00364 };
00365
00366 }
00367 }
00368
00369 #endif // PR2_CLUTTER_HELPER_SERVICE_CLOUDPUB_H
00370