OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ppapi/proxy/ppapi_param_traits.h" | 5 #include "ppapi/proxy/ppapi_param_traits.h" |
6 | 6 |
7 #include <string.h> // For memcpy | 7 #include <string.h> // For memcpy |
8 | 8 |
9 #include "ppapi/c/dev/pp_file_info_dev.h" | 9 #include "ppapi/c/dev/pp_file_info_dev.h" |
10 #include "ppapi/c/pp_resource.h" | 10 #include "ppapi/c/pp_resource.h" |
| 11 #include "ppapi/proxy/host_resource.h" |
11 #include "ppapi/proxy/interface_proxy.h" | 12 #include "ppapi/proxy/interface_proxy.h" |
12 #include "ppapi/proxy/ppapi_messages.h" | 13 #include "ppapi/proxy/ppapi_messages.h" |
13 #include "ppapi/proxy/serialized_var.h" | 14 #include "ppapi/proxy/serialized_var.h" |
14 | 15 |
15 namespace IPC { | 16 namespace IPC { |
16 | 17 |
17 // PP_Bool --------------------------------------------------------------------- | 18 // PP_Bool --------------------------------------------------------------------- |
18 | 19 |
19 // static | 20 // static |
20 void ParamTraits<PP_Bool>::Write(Message* m, const param_type& p) { | 21 void ParamTraits<PP_Bool>::Write(Message* m, const param_type& p) { |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
173 | 174 |
174 // static | 175 // static |
175 bool ParamTraits<PP_Size>::Read(const Message* m, void** iter, param_type* r) { | 176 bool ParamTraits<PP_Size>::Read(const Message* m, void** iter, param_type* r) { |
176 return m->ReadInt(iter, &r->width) && m->ReadInt(iter, &r->height); | 177 return m->ReadInt(iter, &r->width) && m->ReadInt(iter, &r->height); |
177 } | 178 } |
178 | 179 |
179 // static | 180 // static |
180 void ParamTraits<PP_Size>::Log(const param_type& p, std::string* l) { | 181 void ParamTraits<PP_Size>::Log(const param_type& p, std::string* l) { |
181 } | 182 } |
182 | 183 |
| 184 // PPBAudio_NotifyAudioStreamCreated_Params ------------------------------------ |
| 185 |
| 186 // static |
| 187 void ParamTraits<pp::proxy::PPBAudio_NotifyAudioStreamCreated_Params>::Write( |
| 188 Message* m, |
| 189 const param_type& p) { |
| 190 ParamTraits<pp::proxy::HostResource>::Write(m, p.audio_id); |
| 191 ParamTraits<int32_t>::Write(m, p.result_code); |
| 192 ParamTraits<PlatformFileForTransit>::Write(m, p.socket_handle); |
| 193 ParamTraits<int32_t>::Write(m, p.length); |
| 194 } |
| 195 |
| 196 // static |
| 197 bool ParamTraits<pp::proxy::PPBAudio_NotifyAudioStreamCreated_Params>::Read( |
| 198 const Message* m, |
| 199 void** iter, |
| 200 param_type* r) { |
| 201 return |
| 202 ParamTraits<pp::proxy::HostResource>::Read(m, iter, &r->audio_id) && |
| 203 ParamTraits<int32_t>::Read(m, iter, &r->result_code) && |
| 204 ParamTraits<PlatformFileForTransit>::Read(m, iter, &r->socket_handle) && |
| 205 ParamTraits<int32_t>::Read(m, iter, &r->length); |
| 206 } |
| 207 |
| 208 // static |
| 209 void ParamTraits<pp::proxy::PPBAudio_NotifyAudioStreamCreated_Params>::Log( |
| 210 const param_type& p, |
| 211 std::string* l) { |
| 212 } |
| 213 |
183 // PPBFlash_DrawGlyphs_Params -------------------------------------------------- | 214 // PPBFlash_DrawGlyphs_Params -------------------------------------------------- |
184 | 215 |
185 // static | 216 // static |
186 void ParamTraits<pp::proxy::PPBFlash_DrawGlyphs_Params>::Write( | 217 void ParamTraits<pp::proxy::PPBFlash_DrawGlyphs_Params>::Write( |
187 Message* m, | 218 Message* m, |
188 const param_type& p) { | 219 const param_type& p) { |
189 ParamTraits<PP_Instance>::Write(m, p.instance); | 220 ParamTraits<PP_Instance>::Write(m, p.instance); |
190 ParamTraits<PP_Resource>::Write(m, p.pp_image_data); | 221 ParamTraits<pp::proxy::HostResource>::Write(m, p.image_data); |
191 ParamTraits<pp::proxy::SerializedFontDescription>::Write(m, p.font_desc); | 222 ParamTraits<pp::proxy::SerializedFontDescription>::Write(m, p.font_desc); |
192 ParamTraits<uint32_t>::Write(m, p.color); | 223 ParamTraits<uint32_t>::Write(m, p.color); |
193 ParamTraits<PP_Point>::Write(m, p.position); | 224 ParamTraits<PP_Point>::Write(m, p.position); |
194 ParamTraits<PP_Rect>::Write(m, p.clip); | 225 ParamTraits<PP_Rect>::Write(m, p.clip); |
195 ParamTraits<float>::Write(m, p.transformation[0][0]); | 226 ParamTraits<float>::Write(m, p.transformation[0][0]); |
196 ParamTraits<float>::Write(m, p.transformation[0][1]); | 227 ParamTraits<float>::Write(m, p.transformation[0][1]); |
197 ParamTraits<float>::Write(m, p.transformation[0][2]); | 228 ParamTraits<float>::Write(m, p.transformation[0][2]); |
198 ParamTraits<float>::Write(m, p.transformation[1][0]); | 229 ParamTraits<float>::Write(m, p.transformation[1][0]); |
199 ParamTraits<float>::Write(m, p.transformation[1][1]); | 230 ParamTraits<float>::Write(m, p.transformation[1][1]); |
200 ParamTraits<float>::Write(m, p.transformation[1][2]); | 231 ParamTraits<float>::Write(m, p.transformation[1][2]); |
201 ParamTraits<float>::Write(m, p.transformation[2][0]); | 232 ParamTraits<float>::Write(m, p.transformation[2][0]); |
202 ParamTraits<float>::Write(m, p.transformation[2][1]); | 233 ParamTraits<float>::Write(m, p.transformation[2][1]); |
203 ParamTraits<float>::Write(m, p.transformation[2][2]); | 234 ParamTraits<float>::Write(m, p.transformation[2][2]); |
204 ParamTraits<std::vector<uint16_t> >::Write(m, p.glyph_indices); | 235 ParamTraits<std::vector<uint16_t> >::Write(m, p.glyph_indices); |
205 ParamTraits<std::vector<PP_Point> >::Write(m, p.glyph_advances); | 236 ParamTraits<std::vector<PP_Point> >::Write(m, p.glyph_advances); |
206 } | 237 } |
207 | 238 |
208 // static | 239 // static |
209 bool ParamTraits<pp::proxy::PPBFlash_DrawGlyphs_Params>::Read( | 240 bool ParamTraits<pp::proxy::PPBFlash_DrawGlyphs_Params>::Read( |
210 const Message* m, | 241 const Message* m, |
211 void** iter, | 242 void** iter, |
212 param_type* r) { | 243 param_type* r) { |
213 return | 244 return |
214 ParamTraits<PP_Instance>::Read(m, iter, &r->instance) && | 245 ParamTraits<PP_Instance>::Read(m, iter, &r->instance) && |
215 ParamTraits<PP_Resource>::Read(m, iter, &r->pp_image_data) && | 246 ParamTraits<pp::proxy::HostResource>::Read(m, iter, |
| 247 &r->image_data) && |
216 ParamTraits<pp::proxy::SerializedFontDescription>::Read(m, iter, | 248 ParamTraits<pp::proxy::SerializedFontDescription>::Read(m, iter, |
217 &r->font_desc) && | 249 &r->font_desc) && |
218 ParamTraits<uint32_t>::Read(m, iter, &r->color) && | 250 ParamTraits<uint32_t>::Read(m, iter, &r->color) && |
219 ParamTraits<PP_Point>::Read(m, iter, &r->position) && | 251 ParamTraits<PP_Point>::Read(m, iter, &r->position) && |
220 ParamTraits<PP_Rect>::Read(m, iter, &r->clip) && | 252 ParamTraits<PP_Rect>::Read(m, iter, &r->clip) && |
221 ParamTraits<float>::Read(m, iter, &r->transformation[0][0]) && | 253 ParamTraits<float>::Read(m, iter, &r->transformation[0][0]) && |
222 ParamTraits<float>::Read(m, iter, &r->transformation[0][1]) && | 254 ParamTraits<float>::Read(m, iter, &r->transformation[0][1]) && |
223 ParamTraits<float>::Read(m, iter, &r->transformation[0][2]) && | 255 ParamTraits<float>::Read(m, iter, &r->transformation[0][2]) && |
224 ParamTraits<float>::Read(m, iter, &r->transformation[1][0]) && | 256 ParamTraits<float>::Read(m, iter, &r->transformation[1][0]) && |
225 ParamTraits<float>::Read(m, iter, &r->transformation[1][1]) && | 257 ParamTraits<float>::Read(m, iter, &r->transformation[1][1]) && |
(...skipping 11 matching lines...) Expand all Loading... |
237 const param_type& p, | 269 const param_type& p, |
238 std::string* l) { | 270 std::string* l) { |
239 } | 271 } |
240 | 272 |
241 // PPBFont_DrawTextAt_Params --------------------------------------------------- | 273 // PPBFont_DrawTextAt_Params --------------------------------------------------- |
242 | 274 |
243 // static | 275 // static |
244 void ParamTraits<pp::proxy::PPBFont_DrawTextAt_Params>::Write( | 276 void ParamTraits<pp::proxy::PPBFont_DrawTextAt_Params>::Write( |
245 Message* m, | 277 Message* m, |
246 const param_type& p) { | 278 const param_type& p) { |
247 ParamTraits<PP_Resource>::Write(m, p.font); | 279 ParamTraits<pp::proxy::HostResource>::Write(m, p.font); |
248 ParamTraits<PP_Resource>::Write(m, p.image_data); | 280 ParamTraits<pp::proxy::HostResource>::Write(m, p.image_data); |
249 ParamTraits<PP_Bool>::Write(m, p.text_is_rtl); | 281 ParamTraits<PP_Bool>::Write(m, p.text_is_rtl); |
250 ParamTraits<PP_Bool>::Write(m, p.override_direction); | 282 ParamTraits<PP_Bool>::Write(m, p.override_direction); |
251 ParamTraits<PP_Point>::Write(m, p.position); | 283 ParamTraits<PP_Point>::Write(m, p.position); |
252 ParamTraits<uint32_t>::Write(m, p.color); | 284 ParamTraits<uint32_t>::Write(m, p.color); |
253 ParamTraits<PP_Rect>::Write(m, p.clip); | 285 ParamTraits<PP_Rect>::Write(m, p.clip); |
254 ParamTraits<bool>::Write(m, p.clip_is_null); | 286 ParamTraits<bool>::Write(m, p.clip_is_null); |
255 ParamTraits<PP_Bool>::Write(m, p.image_data_is_opaque); | 287 ParamTraits<PP_Bool>::Write(m, p.image_data_is_opaque); |
256 } | 288 } |
257 | 289 |
258 // static | 290 // static |
259 bool ParamTraits<pp::proxy::PPBFont_DrawTextAt_Params>::Read( | 291 bool ParamTraits<pp::proxy::PPBFont_DrawTextAt_Params>::Read( |
260 const Message* m, | 292 const Message* m, |
261 void** iter, | 293 void** iter, |
262 param_type* r) { | 294 param_type* r) { |
263 return | 295 return |
264 ParamTraits<PP_Resource>::Read(m, iter, &r->font) && | 296 ParamTraits<pp::proxy::HostResource>::Read(m, iter, &r->font) && |
265 ParamTraits<PP_Resource>::Read(m, iter, &r->image_data) && | 297 ParamTraits<pp::proxy::HostResource>::Read(m, iter, |
| 298 &r->image_data) && |
266 ParamTraits<PP_Bool>::Read(m, iter, &r->text_is_rtl) && | 299 ParamTraits<PP_Bool>::Read(m, iter, &r->text_is_rtl) && |
267 ParamTraits<PP_Bool>::Read(m, iter, &r->override_direction) && | 300 ParamTraits<PP_Bool>::Read(m, iter, &r->override_direction) && |
268 ParamTraits<PP_Point>::Read(m, iter, &r->position) && | 301 ParamTraits<PP_Point>::Read(m, iter, &r->position) && |
269 ParamTraits<uint32_t>::Read(m, iter, &r->color) && | 302 ParamTraits<uint32_t>::Read(m, iter, &r->color) && |
270 ParamTraits<PP_Rect>::Read(m, iter, &r->clip) && | 303 ParamTraits<PP_Rect>::Read(m, iter, &r->clip) && |
271 ParamTraits<bool>::Read(m, iter, &r->clip_is_null) && | 304 ParamTraits<bool>::Read(m, iter, &r->clip_is_null) && |
272 ParamTraits<PP_Bool>::Read(m, iter, &r->image_data_is_opaque); | 305 ParamTraits<PP_Bool>::Read(m, iter, &r->image_data_is_opaque); |
273 } | 306 } |
274 | 307 |
275 // static | 308 // static |
276 void ParamTraits<pp::proxy::PPBFont_DrawTextAt_Params>::Log( | 309 void ParamTraits<pp::proxy::PPBFont_DrawTextAt_Params>::Log( |
277 const param_type& p, | 310 const param_type& p, |
278 std::string* l) { | 311 std::string* l) { |
279 } | 312 } |
280 | 313 |
| 314 // PPBURLLoader_UpdateProgress_Params ------------------------------------------ |
| 315 |
| 316 // static |
| 317 void ParamTraits<pp::proxy::PPBURLLoader_UpdateProgress_Params>::Write( |
| 318 Message* m, |
| 319 const param_type& p) { |
| 320 ParamTraits<PP_Instance>::Write(m, p.instance); |
| 321 ParamTraits<pp::proxy::HostResource>::Write(m, p.resource); |
| 322 ParamTraits<int64_t>::Write(m, p.bytes_sent); |
| 323 ParamTraits<int64_t>::Write(m, p.total_bytes_to_be_sent); |
| 324 ParamTraits<int64_t>::Write(m, p.bytes_received); |
| 325 ParamTraits<int64_t>::Write(m, p.total_bytes_to_be_received); |
| 326 } |
| 327 |
| 328 // static |
| 329 bool ParamTraits<pp::proxy::PPBURLLoader_UpdateProgress_Params>::Read( |
| 330 const Message* m, |
| 331 void** iter, |
| 332 param_type* r) { |
| 333 return |
| 334 ParamTraits<PP_Instance>::Read(m, iter, &r->instance) && |
| 335 ParamTraits<pp::proxy::HostResource>::Read(m, iter, &r->resource) && |
| 336 ParamTraits<int64_t>::Read(m, iter, &r->bytes_sent) && |
| 337 ParamTraits<int64_t>::Read(m, iter, &r->total_bytes_to_be_sent) && |
| 338 ParamTraits<int64_t>::Read(m, iter, &r->bytes_received) && |
| 339 ParamTraits<int64_t>::Read(m, iter, &r->total_bytes_to_be_received); |
| 340 } |
| 341 |
| 342 // static |
| 343 void ParamTraits<pp::proxy::PPBURLLoader_UpdateProgress_Params>::Log( |
| 344 const param_type& p, |
| 345 std::string* l) { |
| 346 } |
| 347 |
281 // SerializedDirEntry ---------------------------------------------------------- | 348 // SerializedDirEntry ---------------------------------------------------------- |
282 | 349 |
283 // static | 350 // static |
284 void ParamTraits<pp::proxy::SerializedDirEntry>::Write(Message* m, | 351 void ParamTraits<pp::proxy::SerializedDirEntry>::Write(Message* m, |
285 const param_type& p) { | 352 const param_type& p) { |
286 ParamTraits<std::string>::Write(m, p.name); | 353 ParamTraits<std::string>::Write(m, p.name); |
287 ParamTraits<bool>::Write(m, p.is_dir); | 354 ParamTraits<bool>::Write(m, p.is_dir); |
288 } | 355 } |
289 | 356 |
290 // static | 357 // static |
291 bool ParamTraits<pp::proxy::SerializedDirEntry>::Read(const Message* m, | 358 bool ParamTraits<pp::proxy::SerializedDirEntry>::Read(const Message* m, |
292 void** iter, | 359 void** iter, |
293 param_type* r) { | 360 param_type* r) { |
294 return ParamTraits<std::string>::Read(m, iter, &r->name) && | 361 return ParamTraits<std::string>::Read(m, iter, &r->name) && |
295 ParamTraits<bool>::Read(m, iter, &r->is_dir); | 362 ParamTraits<bool>::Read(m, iter, &r->is_dir); |
296 } | 363 } |
297 | 364 |
298 // static | 365 // static |
299 void ParamTraits<pp::proxy::SerializedDirEntry>::Log(const param_type& p, | 366 void ParamTraits<pp::proxy::SerializedDirEntry>::Log(const param_type& p, |
300 std::string* l) { | 367 std::string* l) { |
301 } | 368 } |
302 | 369 |
303 // SerializedVar --------------------------------------------------------------- | |
304 | |
305 // static | |
306 void ParamTraits<pp::proxy::SerializedVar>::Write(Message* m, | |
307 const param_type& p) { | |
308 p.WriteToMessage(m); | |
309 } | |
310 | |
311 // static | |
312 bool ParamTraits<pp::proxy::SerializedVar>::Read(const Message* m, | |
313 void** iter, | |
314 param_type* r) { | |
315 return r->ReadFromMessage(m, iter); | |
316 } | |
317 | |
318 // static | |
319 void ParamTraits<pp::proxy::SerializedVar>::Log(const param_type& p, | |
320 std::string* l) { | |
321 } | |
322 | |
323 // pp::proxy::SerializedFontDescription ---------------------------------------- | 370 // pp::proxy::SerializedFontDescription ---------------------------------------- |
324 | 371 |
325 // static | 372 // static |
326 void ParamTraits<pp::proxy::SerializedFontDescription>::Write( | 373 void ParamTraits<pp::proxy::SerializedFontDescription>::Write( |
327 Message* m, | 374 Message* m, |
328 const param_type& p) { | 375 const param_type& p) { |
329 ParamTraits<pp::proxy::SerializedVar>::Write(m, p.face); | 376 ParamTraits<pp::proxy::SerializedVar>::Write(m, p.face); |
330 ParamTraits<int32_t>::Write(m, p.family); | 377 ParamTraits<int32_t>::Write(m, p.family); |
331 ParamTraits<uint32_t>::Write(m, p.size); | 378 ParamTraits<uint32_t>::Write(m, p.size); |
332 ParamTraits<int32_t>::Write(m, p.weight); | 379 ParamTraits<int32_t>::Write(m, p.weight); |
(...skipping 18 matching lines...) Expand all Loading... |
351 ParamTraits<int32_t>::Read(m, iter, &r->letter_spacing) && | 398 ParamTraits<int32_t>::Read(m, iter, &r->letter_spacing) && |
352 ParamTraits<int32_t>::Read(m, iter, &r->word_spacing); | 399 ParamTraits<int32_t>::Read(m, iter, &r->word_spacing); |
353 } | 400 } |
354 | 401 |
355 // static | 402 // static |
356 void ParamTraits<pp::proxy::SerializedFontDescription>::Log( | 403 void ParamTraits<pp::proxy::SerializedFontDescription>::Log( |
357 const param_type& p, | 404 const param_type& p, |
358 std::string* l) { | 405 std::string* l) { |
359 } | 406 } |
360 | 407 |
| 408 // HostResource ---------------------------------------------------------- |
| 409 |
| 410 // static |
| 411 void ParamTraits<pp::proxy::HostResource>::Write(Message* m, |
| 412 const param_type& p) { |
| 413 ParamTraits<PP_Instance>::Write(m, p.instance()); |
| 414 ParamTraits<PP_Resource>::Write(m, p.host_resource()); |
| 415 } |
| 416 |
| 417 // static |
| 418 bool ParamTraits<pp::proxy::HostResource>::Read(const Message* m, |
| 419 void** iter, |
| 420 param_type* r) { |
| 421 PP_Instance instance; |
| 422 PP_Resource resource; |
| 423 if (!ParamTraits<PP_Instance>::Read(m, iter, &instance) || |
| 424 !ParamTraits<PP_Resource>::Read(m, iter, &resource)) |
| 425 return false; |
| 426 r->SetHostResource(instance, resource); |
| 427 return true; |
| 428 } |
| 429 |
| 430 // static |
| 431 void ParamTraits<pp::proxy::HostResource>::Log(const param_type& p, |
| 432 std::string* l) { |
| 433 } |
| 434 |
| 435 // SerializedVar --------------------------------------------------------------- |
| 436 |
| 437 // static |
| 438 void ParamTraits<pp::proxy::SerializedVar>::Write(Message* m, |
| 439 const param_type& p) { |
| 440 p.WriteToMessage(m); |
| 441 } |
| 442 |
| 443 // static |
| 444 bool ParamTraits<pp::proxy::SerializedVar>::Read(const Message* m, |
| 445 void** iter, |
| 446 param_type* r) { |
| 447 return r->ReadFromMessage(m, iter); |
| 448 } |
| 449 |
| 450 // static |
| 451 void ParamTraits<pp::proxy::SerializedVar>::Log(const param_type& p, |
| 452 std::string* l) { |
| 453 } |
| 454 |
361 // std::vector<SerializedVar> -------------------------------------------------- | 455 // std::vector<SerializedVar> -------------------------------------------------- |
362 | 456 |
363 void ParamTraits< std::vector<pp::proxy::SerializedVar> >::Write( | 457 void ParamTraits< std::vector<pp::proxy::SerializedVar> >::Write( |
364 Message* m, | 458 Message* m, |
365 const param_type& p) { | 459 const param_type& p) { |
366 WriteParam(m, static_cast<int>(p.size())); | 460 WriteParam(m, static_cast<int>(p.size())); |
367 for (size_t i = 0; i < p.size(); i++) | 461 for (size_t i = 0; i < p.size(); i++) |
368 WriteParam(m, p[i]); | 462 WriteParam(m, p[i]); |
369 } | 463 } |
370 | 464 |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
407 return true; | 501 return true; |
408 } | 502 } |
409 | 503 |
410 // static | 504 // static |
411 void ParamTraits< std::vector<pp::proxy::SerializedVar> >::Log( | 505 void ParamTraits< std::vector<pp::proxy::SerializedVar> >::Log( |
412 const param_type& p, | 506 const param_type& p, |
413 std::string* l) { | 507 std::string* l) { |
414 } | 508 } |
415 | 509 |
416 } // namespace IPC | 510 } // namespace IPC |
OLD | NEW |