Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(127)

Side by Side Diff: ppapi/proxy/ppapi_param_traits.cc

Issue 6334016: Refactor PPAPI proxy resource handling to maintain which host they came from,... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ppapi/proxy/ppapi_param_traits.h ('k') | ppapi/proxy/ppapi_proxy_test.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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
OLDNEW
« no previous file with comments | « ppapi/proxy/ppapi_param_traits.h ('k') | ppapi/proxy/ppapi_proxy_test.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698