Gary Servin / ros_lib_indigo

Dependencies:   BufferedSerial

Dependents:   rosserial_mbed_hello_world_publisher rtos_base_control rosserial_mbed_F64MA ROS-RTOS ... more

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers NodeletLoad.h Source File

NodeletLoad.h

00001 #ifndef _ROS_SERVICE_NodeletLoad_h
00002 #define _ROS_SERVICE_NodeletLoad_h
00003 #include <stdint.h>
00004 #include <string.h>
00005 #include <stdlib.h>
00006 #include "ros/msg.h"
00007 
00008 namespace nodelet
00009 {
00010 
00011 static const char NODELETLOAD[] = "nodelet/NodeletLoad";
00012 
00013   class NodeletLoadRequest : public ros::Msg
00014   {
00015     public:
00016       const char* name;
00017       const char* type;
00018       uint8_t remap_source_args_length;
00019       char* st_remap_source_args;
00020       char* * remap_source_args;
00021       uint8_t remap_target_args_length;
00022       char* st_remap_target_args;
00023       char* * remap_target_args;
00024       uint8_t my_argv_length;
00025       char* st_my_argv;
00026       char* * my_argv;
00027       const char* bond_id;
00028 
00029     NodeletLoadRequest():
00030       name(""),
00031       type(""),
00032       remap_source_args_length(0), remap_source_args(NULL),
00033       remap_target_args_length(0), remap_target_args(NULL),
00034       my_argv_length(0), my_argv(NULL),
00035       bond_id("")
00036     {
00037     }
00038 
00039     virtual int serialize(unsigned char *outbuffer) const
00040     {
00041       int offset = 0;
00042       uint32_t length_name = strlen(this->name);
00043       memcpy(outbuffer + offset, &length_name, sizeof(uint32_t));
00044       offset += 4;
00045       memcpy(outbuffer + offset, this->name, length_name);
00046       offset += length_name;
00047       uint32_t length_type = strlen(this->type);
00048       memcpy(outbuffer + offset, &length_type, sizeof(uint32_t));
00049       offset += 4;
00050       memcpy(outbuffer + offset, this->type, length_type);
00051       offset += length_type;
00052       *(outbuffer + offset++) = remap_source_args_length;
00053       *(outbuffer + offset++) = 0;
00054       *(outbuffer + offset++) = 0;
00055       *(outbuffer + offset++) = 0;
00056       for( uint8_t i = 0; i < remap_source_args_length; i++){
00057       uint32_t length_remap_source_argsi = strlen(this->remap_source_args[i]);
00058       memcpy(outbuffer + offset, &length_remap_source_argsi, sizeof(uint32_t));
00059       offset += 4;
00060       memcpy(outbuffer + offset, this->remap_source_args[i], length_remap_source_argsi);
00061       offset += length_remap_source_argsi;
00062       }
00063       *(outbuffer + offset++) = remap_target_args_length;
00064       *(outbuffer + offset++) = 0;
00065       *(outbuffer + offset++) = 0;
00066       *(outbuffer + offset++) = 0;
00067       for( uint8_t i = 0; i < remap_target_args_length; i++){
00068       uint32_t length_remap_target_argsi = strlen(this->remap_target_args[i]);
00069       memcpy(outbuffer + offset, &length_remap_target_argsi, sizeof(uint32_t));
00070       offset += 4;
00071       memcpy(outbuffer + offset, this->remap_target_args[i], length_remap_target_argsi);
00072       offset += length_remap_target_argsi;
00073       }
00074       *(outbuffer + offset++) = my_argv_length;
00075       *(outbuffer + offset++) = 0;
00076       *(outbuffer + offset++) = 0;
00077       *(outbuffer + offset++) = 0;
00078       for( uint8_t i = 0; i < my_argv_length; i++){
00079       uint32_t length_my_argvi = strlen(this->my_argv[i]);
00080       memcpy(outbuffer + offset, &length_my_argvi, sizeof(uint32_t));
00081       offset += 4;
00082       memcpy(outbuffer + offset, this->my_argv[i], length_my_argvi);
00083       offset += length_my_argvi;
00084       }
00085       uint32_t length_bond_id = strlen(this->bond_id);
00086       memcpy(outbuffer + offset, &length_bond_id, sizeof(uint32_t));
00087       offset += 4;
00088       memcpy(outbuffer + offset, this->bond_id, length_bond_id);
00089       offset += length_bond_id;
00090       return offset;
00091     }
00092 
00093     virtual int deserialize(unsigned char *inbuffer)
00094     {
00095       int offset = 0;
00096       uint32_t length_name;
00097       memcpy(&length_name, (inbuffer + offset), sizeof(uint32_t));
00098       offset += 4;
00099       for(unsigned int k= offset; k< offset+length_name; ++k){
00100           inbuffer[k-1]=inbuffer[k];
00101       }
00102       inbuffer[offset+length_name-1]=0;
00103       this->name = (char *)(inbuffer + offset-1);
00104       offset += length_name;
00105       uint32_t length_type;
00106       memcpy(&length_type, (inbuffer + offset), sizeof(uint32_t));
00107       offset += 4;
00108       for(unsigned int k= offset; k< offset+length_type; ++k){
00109           inbuffer[k-1]=inbuffer[k];
00110       }
00111       inbuffer[offset+length_type-1]=0;
00112       this->type = (char *)(inbuffer + offset-1);
00113       offset += length_type;
00114       uint8_t remap_source_args_lengthT = *(inbuffer + offset++);
00115       if(remap_source_args_lengthT > remap_source_args_length)
00116         this->remap_source_args = (char**)realloc(this->remap_source_args, remap_source_args_lengthT * sizeof(char*));
00117       offset += 3;
00118       remap_source_args_length = remap_source_args_lengthT;
00119       for( uint8_t i = 0; i < remap_source_args_length; i++){
00120       uint32_t length_st_remap_source_args;
00121       memcpy(&length_st_remap_source_args, (inbuffer + offset), sizeof(uint32_t));
00122       offset += 4;
00123       for(unsigned int k= offset; k< offset+length_st_remap_source_args; ++k){
00124           inbuffer[k-1]=inbuffer[k];
00125       }
00126       inbuffer[offset+length_st_remap_source_args-1]=0;
00127       this->st_remap_source_args = (char *)(inbuffer + offset-1);
00128       offset += length_st_remap_source_args;
00129         memcpy( &(this->remap_source_args[i]), &(this->st_remap_source_args), sizeof(char*));
00130       }
00131       uint8_t remap_target_args_lengthT = *(inbuffer + offset++);
00132       if(remap_target_args_lengthT > remap_target_args_length)
00133         this->remap_target_args = (char**)realloc(this->remap_target_args, remap_target_args_lengthT * sizeof(char*));
00134       offset += 3;
00135       remap_target_args_length = remap_target_args_lengthT;
00136       for( uint8_t i = 0; i < remap_target_args_length; i++){
00137       uint32_t length_st_remap_target_args;
00138       memcpy(&length_st_remap_target_args, (inbuffer + offset), sizeof(uint32_t));
00139       offset += 4;
00140       for(unsigned int k= offset; k< offset+length_st_remap_target_args; ++k){
00141           inbuffer[k-1]=inbuffer[k];
00142       }
00143       inbuffer[offset+length_st_remap_target_args-1]=0;
00144       this->st_remap_target_args = (char *)(inbuffer + offset-1);
00145       offset += length_st_remap_target_args;
00146         memcpy( &(this->remap_target_args[i]), &(this->st_remap_target_args), sizeof(char*));
00147       }
00148       uint8_t my_argv_lengthT = *(inbuffer + offset++);
00149       if(my_argv_lengthT > my_argv_length)
00150         this->my_argv = (char**)realloc(this->my_argv, my_argv_lengthT * sizeof(char*));
00151       offset += 3;
00152       my_argv_length = my_argv_lengthT;
00153       for( uint8_t i = 0; i < my_argv_length; i++){
00154       uint32_t length_st_my_argv;
00155       memcpy(&length_st_my_argv, (inbuffer + offset), sizeof(uint32_t));
00156       offset += 4;
00157       for(unsigned int k= offset; k< offset+length_st_my_argv; ++k){
00158           inbuffer[k-1]=inbuffer[k];
00159       }
00160       inbuffer[offset+length_st_my_argv-1]=0;
00161       this->st_my_argv = (char *)(inbuffer + offset-1);
00162       offset += length_st_my_argv;
00163         memcpy( &(this->my_argv[i]), &(this->st_my_argv), sizeof(char*));
00164       }
00165       uint32_t length_bond_id;
00166       memcpy(&length_bond_id, (inbuffer + offset), sizeof(uint32_t));
00167       offset += 4;
00168       for(unsigned int k= offset; k< offset+length_bond_id; ++k){
00169           inbuffer[k-1]=inbuffer[k];
00170       }
00171       inbuffer[offset+length_bond_id-1]=0;
00172       this->bond_id = (char *)(inbuffer + offset-1);
00173       offset += length_bond_id;
00174      return offset;
00175     }
00176 
00177     const char * getType(){ return NODELETLOAD; };
00178     const char * getMD5(){ return "c6e28cc4d2e259249d96cfb50658fbec"; };
00179 
00180   };
00181 
00182   class NodeletLoadResponse : public ros::Msg
00183   {
00184     public:
00185       bool success;
00186 
00187     NodeletLoadResponse():
00188       success(0)
00189     {
00190     }
00191 
00192     virtual int serialize(unsigned char *outbuffer) const
00193     {
00194       int offset = 0;
00195       union {
00196         bool real;
00197         uint8_t base;
00198       } u_success;
00199       u_success.real = this->success;
00200       *(outbuffer + offset + 0) = (u_success.base >> (8 * 0)) & 0xFF;
00201       offset += sizeof(this->success);
00202       return offset;
00203     }
00204 
00205     virtual int deserialize(unsigned char *inbuffer)
00206     {
00207       int offset = 0;
00208       union {
00209         bool real;
00210         uint8_t base;
00211       } u_success;
00212       u_success.base = 0;
00213       u_success.base |= ((uint8_t) (*(inbuffer + offset + 0))) << (8 * 0);
00214       this->success = u_success.real;
00215       offset += sizeof(this->success);
00216      return offset;
00217     }
00218 
00219     const char * getType(){ return NODELETLOAD; };
00220     const char * getMD5(){ return "358e233cde0c8a8bcfea4ce193f8fc15"; };
00221 
00222   };
00223 
00224   class NodeletLoad {
00225     public:
00226     typedef NodeletLoadRequest Request;
00227     typedef NodeletLoadResponse Response;
00228   };
00229 
00230 }
00231 #endif