18 #ifndef _ROS_SERVICE_RequestParam_h
19 #define _ROS_SERVICE_RequestParam_h
40 virtual int serialize(
unsigned char *outbuffer)
const
43 uint32_t length_name = strlen(this->name);
44 memcpy(outbuffer + offset, &length_name,
sizeof(uint32_t));
46 memcpy(outbuffer + offset, this->name, length_name);
47 offset += length_name;
55 memcpy(&length_name, (inbuffer + offset),
sizeof(uint32_t));
57 for(
unsigned int k= offset; k< offset+length_name; ++k){
58 inbuffer[k-1]=inbuffer[k];
60 inbuffer[offset+length_name-1]=0;
61 this->name = (
char *)(inbuffer + offset-1);
62 offset += length_name;
67 const char *
getMD5(){
return "c1f3d28f1b044c871e6eff2e9fc3c667"; };
91 virtual int serialize(
unsigned char *outbuffer)
const
95 *(outbuffer + offset++) = 0;
96 *(outbuffer + offset++) = 0;
97 *(outbuffer + offset++) = 0;
103 u_intsi.real = this->ints[i];
104 *(outbuffer + offset + 0) = (u_intsi.base >> (8 * 0)) & 0xFF;
105 *(outbuffer + offset + 1) = (u_intsi.base >> (8 * 1)) & 0xFF;
106 *(outbuffer + offset + 2) = (u_intsi.base >> (8 * 2)) & 0xFF;
107 *(outbuffer + offset + 3) = (u_intsi.base >> (8 * 3)) & 0xFF;
108 offset +=
sizeof(this->ints[i]);
111 *(outbuffer + offset++) = 0;
112 *(outbuffer + offset++) = 0;
113 *(outbuffer + offset++) = 0;
119 u_floatsi.real = this->floats[i];
120 *(outbuffer + offset + 0) = (u_floatsi.base >> (8 * 0)) & 0xFF;
121 *(outbuffer + offset + 1) = (u_floatsi.base >> (8 * 1)) & 0xFF;
122 *(outbuffer + offset + 2) = (u_floatsi.base >> (8 * 2)) & 0xFF;
123 *(outbuffer + offset + 3) = (u_floatsi.base >> (8 * 3)) & 0xFF;
124 offset +=
sizeof(this->floats[i]);
127 *(outbuffer + offset++) = 0;
128 *(outbuffer + offset++) = 0;
129 *(outbuffer + offset++) = 0;
131 uint32_t length_stringsi = strlen(this->strings[i]);
132 memcpy(outbuffer + offset, &length_stringsi,
sizeof(uint32_t));
134 memcpy(outbuffer + offset, this->strings[i], length_stringsi);
135 offset += length_stringsi;
143 uint8_t ints_lengthT = *(inbuffer + offset++);
145 this->ints = (int32_t*)realloc(this->ints, ints_lengthT *
sizeof(int32_t));
154 u_st_ints.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
155 u_st_ints.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
156 u_st_ints.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
157 u_st_ints.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
158 this->st_ints = u_st_ints.real;
159 offset +=
sizeof(this->
st_ints);
160 memcpy( &(this->ints[i]), &(this->st_ints),
sizeof(int32_t));
162 uint8_t floats_lengthT = *(inbuffer + offset++);
164 this->floats = (
float*)realloc(this->floats, floats_lengthT *
sizeof(
float));
172 u_st_floats.base = 0;
173 u_st_floats.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
174 u_st_floats.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
175 u_st_floats.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
176 u_st_floats.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
177 this->st_floats = u_st_floats.real;
179 memcpy( &(this->floats[i]), &(this->st_floats),
sizeof(
float));
181 uint8_t strings_lengthT = *(inbuffer + offset++);
183 this->strings = (
char**)realloc(this->strings, strings_lengthT *
sizeof(
char*));
187 uint32_t length_st_strings;
188 memcpy(&length_st_strings, (inbuffer + offset),
sizeof(uint32_t));
190 for(
unsigned int k= offset; k< offset+length_st_strings; ++k){
191 inbuffer[k-1]=inbuffer[k];
193 inbuffer[offset+length_st_strings-1]=0;
194 this->st_strings = (
char *)(inbuffer + offset-1);
195 offset += length_st_strings;
196 memcpy( &(this->strings[i]), &(this->st_strings),
sizeof(
char*));
202 const char *
getMD5(){
return "9f0e98bda65981986ddf53afa7a40e49"; };