OLD | NEW |
1 // Copyright (c) 2011 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/pp_file_info.h" | 9 #include "ppapi/c/pp_file_info.h" |
10 #include "ppapi/c/pp_resource.h" | 10 #include "ppapi/c/pp_resource.h" |
(...skipping 21 matching lines...) Expand all Loading... |
32 // Since we allocate the inner class when you call the default constructor and | 32 // Since we allocate the inner class when you call the default constructor and |
33 // transfer the inner class when you do operator=, the entire vector will end | 33 // transfer the inner class when you do operator=, the entire vector will end |
34 // up referring to the same inner class. Deserializing into this will just end | 34 // up referring to the same inner class. Deserializing into this will just end |
35 // up overwriting the same item over and over, since all the SerializedVars | 35 // up overwriting the same item over and over, since all the SerializedVars |
36 // will refer to the same thing. | 36 // will refer to the same thing. |
37 // | 37 // |
38 // The solution is to make a new object for each deserialized item, and then | 38 // The solution is to make a new object for each deserialized item, and then |
39 // add it to the vector one at a time. | 39 // add it to the vector one at a time. |
40 template<typename T> | 40 template<typename T> |
41 bool ReadVectorWithoutCopy(const Message* m, | 41 bool ReadVectorWithoutCopy(const Message* m, |
42 void** iter, | 42 PickleReader* iter, |
43 std::vector<T>* output) { | 43 std::vector<T>* output) { |
44 // This part is just a copy of the the default ParamTraits vector Read(). | 44 // This part is just a copy of the the default ParamTraits vector Read(). |
45 int size; | 45 int size; |
46 // ReadLength() checks for < 0 itself. | 46 // ReadLength() checks for < 0 itself. |
47 if (!m->ReadLength(iter, &size)) | 47 if (!m->ReadLength(iter, &size)) |
48 return false; | 48 return false; |
49 // Resizing beforehand is not safe, see BUG 1006367 for details. | 49 // Resizing beforehand is not safe, see BUG 1006367 for details. |
50 if (INT_MAX / sizeof(T) <= static_cast<size_t>(size)) | 50 if (INT_MAX / sizeof(T) <= static_cast<size_t>(size)) |
51 return false; | 51 return false; |
52 | 52 |
(...skipping 21 matching lines...) Expand all Loading... |
74 } // namespace | 74 } // namespace |
75 | 75 |
76 // PP_Bool --------------------------------------------------------------------- | 76 // PP_Bool --------------------------------------------------------------------- |
77 | 77 |
78 // static | 78 // static |
79 void ParamTraits<PP_Bool>::Write(Message* m, const param_type& p) { | 79 void ParamTraits<PP_Bool>::Write(Message* m, const param_type& p) { |
80 ParamTraits<bool>::Write(m, PP_ToBool(p)); | 80 ParamTraits<bool>::Write(m, PP_ToBool(p)); |
81 } | 81 } |
82 | 82 |
83 // static | 83 // static |
84 bool ParamTraits<PP_Bool>::Read(const Message* m, void** iter, param_type* r) { | 84 bool ParamTraits<PP_Bool>::Read(const Message* m, PickleReader* iter, param_type
* r) { |
85 // We specifically want to be strict here about what types of input we accept, | 85 // We specifically want to be strict here about what types of input we accept, |
86 // which ParamTraits<bool> does for us. We don't want to deserialize "2" into | 86 // which ParamTraits<bool> does for us. We don't want to deserialize "2" into |
87 // a PP_Bool, for example. | 87 // a PP_Bool, for example. |
88 bool result = false; | 88 bool result = false; |
89 if (!ParamTraits<bool>::Read(m, iter, &result)) | 89 if (!ParamTraits<bool>::Read(m, iter, &result)) |
90 return false; | 90 return false; |
91 *r = PP_FromBool(result); | 91 *r = PP_FromBool(result); |
92 return true; | 92 return true; |
93 } | 93 } |
94 | 94 |
95 // static | 95 // static |
96 void ParamTraits<PP_Bool>::Log(const param_type& p, std::string* l) { | 96 void ParamTraits<PP_Bool>::Log(const param_type& p, std::string* l) { |
97 } | 97 } |
98 | 98 |
99 // PP_FileInfo ------------------------------------------------------------- | 99 // PP_FileInfo ------------------------------------------------------------- |
100 | 100 |
101 // static | 101 // static |
102 void ParamTraits<PP_FileInfo>::Write(Message* m, const param_type& p) { | 102 void ParamTraits<PP_FileInfo>::Write(Message* m, const param_type& p) { |
103 ParamTraits<int64_t>::Write(m, p.size); | 103 ParamTraits<int64_t>::Write(m, p.size); |
104 ParamTraits<int>::Write(m, static_cast<int>(p.type)); | 104 ParamTraits<int>::Write(m, static_cast<int>(p.type)); |
105 ParamTraits<int>::Write(m, static_cast<int>(p.system_type)); | 105 ParamTraits<int>::Write(m, static_cast<int>(p.system_type)); |
106 ParamTraits<double>::Write(m, p.creation_time); | 106 ParamTraits<double>::Write(m, p.creation_time); |
107 ParamTraits<double>::Write(m, p.last_access_time); | 107 ParamTraits<double>::Write(m, p.last_access_time); |
108 ParamTraits<double>::Write(m, p.last_modified_time); | 108 ParamTraits<double>::Write(m, p.last_modified_time); |
109 } | 109 } |
110 | 110 |
111 // static | 111 // static |
112 bool ParamTraits<PP_FileInfo>::Read(const Message* m, void** iter, | 112 bool ParamTraits<PP_FileInfo>::Read(const Message* m, PickleReader* iter, |
113 param_type* r) { | 113 param_type* r) { |
114 int type, system_type; | 114 int type, system_type; |
115 if (!ParamTraits<int64_t>::Read(m, iter, &r->size) || | 115 if (!ParamTraits<int64_t>::Read(m, iter, &r->size) || |
116 !ParamTraits<int>::Read(m, iter, &type) || | 116 !ParamTraits<int>::Read(m, iter, &type) || |
117 !ParamTraits<int>::Read(m, iter, &system_type) || | 117 !ParamTraits<int>::Read(m, iter, &system_type) || |
118 !ParamTraits<double>::Read(m, iter, &r->creation_time) || | 118 !ParamTraits<double>::Read(m, iter, &r->creation_time) || |
119 !ParamTraits<double>::Read(m, iter, &r->last_access_time) || | 119 !ParamTraits<double>::Read(m, iter, &r->last_access_time) || |
120 !ParamTraits<double>::Read(m, iter, &r->last_modified_time)) | 120 !ParamTraits<double>::Read(m, iter, &r->last_modified_time)) |
121 return false; | 121 return false; |
122 if (type != PP_FILETYPE_REGULAR && | 122 if (type != PP_FILETYPE_REGULAR && |
(...skipping 18 matching lines...) Expand all Loading... |
141 | 141 |
142 // static | 142 // static |
143 void ParamTraits<PP_NetAddress_Private>::Write(Message* m, | 143 void ParamTraits<PP_NetAddress_Private>::Write(Message* m, |
144 const param_type& p) { | 144 const param_type& p) { |
145 WriteParam(m, p.size); | 145 WriteParam(m, p.size); |
146 m->WriteBytes(p.data, static_cast<int>(p.size)); | 146 m->WriteBytes(p.data, static_cast<int>(p.size)); |
147 } | 147 } |
148 | 148 |
149 // static | 149 // static |
150 bool ParamTraits<PP_NetAddress_Private>::Read(const Message* m, | 150 bool ParamTraits<PP_NetAddress_Private>::Read(const Message* m, |
151 void** iter, | 151 PickleReader* iter, |
152 param_type* p) { | 152 param_type* p) { |
153 uint16 size; | 153 uint16 size; |
154 if (!ReadParam(m, iter, &size)) | 154 if (!ReadParam(m, iter, &size)) |
155 return false; | 155 return false; |
156 if (size > sizeof(p->data)) | 156 if (size > sizeof(p->data)) |
157 return false; | 157 return false; |
158 p->size = size; | 158 p->size = size; |
159 | 159 |
160 const char* data; | 160 const char* data; |
161 if (!m->ReadBytes(iter, &data, size)) | 161 if (!m->ReadBytes(iter, &data, size)) |
(...skipping 12 matching lines...) Expand all Loading... |
174 | 174 |
175 // PP_ObjectProperty ----------------------------------------------------------- | 175 // PP_ObjectProperty ----------------------------------------------------------- |
176 | 176 |
177 // static | 177 // static |
178 void ParamTraits<PP_ObjectProperty>::Write(Message* m, const param_type& p) { | 178 void ParamTraits<PP_ObjectProperty>::Write(Message* m, const param_type& p) { |
179 // FIXME(brettw); | 179 // FIXME(brettw); |
180 } | 180 } |
181 | 181 |
182 // static | 182 // static |
183 bool ParamTraits<PP_ObjectProperty>::Read(const Message* m, | 183 bool ParamTraits<PP_ObjectProperty>::Read(const Message* m, |
184 void** iter, | 184 PickleReader* iter, |
185 param_type* r) { | 185 param_type* r) { |
186 // FIXME(brettw); | 186 // FIXME(brettw); |
187 return true; | 187 return true; |
188 } | 188 } |
189 | 189 |
190 // static | 190 // static |
191 void ParamTraits<PP_ObjectProperty>::Log(const param_type& p, std::string* l) { | 191 void ParamTraits<PP_ObjectProperty>::Log(const param_type& p, std::string* l) { |
192 } | 192 } |
193 | 193 |
194 // PPBFlash_DrawGlyphs_Params -------------------------------------------------- | 194 // PPBFlash_DrawGlyphs_Params -------------------------------------------------- |
(...skipping 18 matching lines...) Expand all Loading... |
213 ParamTraits<float>::Write(m, p.transformation[2][1]); | 213 ParamTraits<float>::Write(m, p.transformation[2][1]); |
214 ParamTraits<float>::Write(m, p.transformation[2][2]); | 214 ParamTraits<float>::Write(m, p.transformation[2][2]); |
215 ParamTraits<PP_Bool>::Write(m, p.allow_subpixel_aa); | 215 ParamTraits<PP_Bool>::Write(m, p.allow_subpixel_aa); |
216 ParamTraits<std::vector<uint16_t> >::Write(m, p.glyph_indices); | 216 ParamTraits<std::vector<uint16_t> >::Write(m, p.glyph_indices); |
217 ParamTraits<std::vector<PP_Point> >::Write(m, p.glyph_advances); | 217 ParamTraits<std::vector<PP_Point> >::Write(m, p.glyph_advances); |
218 } | 218 } |
219 | 219 |
220 // static | 220 // static |
221 bool ParamTraits<ppapi::proxy::PPBFlash_DrawGlyphs_Params>::Read( | 221 bool ParamTraits<ppapi::proxy::PPBFlash_DrawGlyphs_Params>::Read( |
222 const Message* m, | 222 const Message* m, |
223 void** iter, | 223 PickleReader* iter, |
224 param_type* r) { | 224 param_type* r) { |
225 return | 225 return |
226 ParamTraits<PP_Instance>::Read(m, iter, &r->instance) && | 226 ParamTraits<PP_Instance>::Read(m, iter, &r->instance) && |
227 ParamTraits<ppapi::HostResource>::Read(m, iter, &r->image_data) && | 227 ParamTraits<ppapi::HostResource>::Read(m, iter, &r->image_data) && |
228 ParamTraits<ppapi::proxy::SerializedFontDescription>::Read(m, iter, | 228 ParamTraits<ppapi::proxy::SerializedFontDescription>::Read(m, iter, |
229 &r->font_desc) && | 229 &r->font_desc) && |
230 ParamTraits<uint32_t>::Read(m, iter, &r->color) && | 230 ParamTraits<uint32_t>::Read(m, iter, &r->color) && |
231 ParamTraits<PP_Point>::Read(m, iter, &r->position) && | 231 ParamTraits<PP_Point>::Read(m, iter, &r->position) && |
232 ParamTraits<PP_Rect>::Read(m, iter, &r->clip) && | 232 ParamTraits<PP_Rect>::Read(m, iter, &r->clip) && |
233 ParamTraits<float>::Read(m, iter, &r->transformation[0][0]) && | 233 ParamTraits<float>::Read(m, iter, &r->transformation[0][0]) && |
(...skipping 23 matching lines...) Expand all Loading... |
257 void ParamTraits<ppapi::PPB_FileRef_CreateInfo>::Write(Message* m, | 257 void ParamTraits<ppapi::PPB_FileRef_CreateInfo>::Write(Message* m, |
258 const param_type& p) { | 258 const param_type& p) { |
259 ParamTraits<ppapi::HostResource>::Write(m, p.resource); | 259 ParamTraits<ppapi::HostResource>::Write(m, p.resource); |
260 ParamTraits<int>::Write(m, p.file_system_type); | 260 ParamTraits<int>::Write(m, p.file_system_type); |
261 ParamTraits<std::string>::Write(m, p.path); | 261 ParamTraits<std::string>::Write(m, p.path); |
262 ParamTraits<std::string>::Write(m, p.name); | 262 ParamTraits<std::string>::Write(m, p.name); |
263 } | 263 } |
264 | 264 |
265 // static | 265 // static |
266 bool ParamTraits<ppapi::PPB_FileRef_CreateInfo>::Read(const Message* m, | 266 bool ParamTraits<ppapi::PPB_FileRef_CreateInfo>::Read(const Message* m, |
267 void** iter, | 267 PickleReader* iter, |
268 param_type* r) { | 268 param_type* r) { |
269 return | 269 return |
270 ParamTraits<ppapi::HostResource>::Read(m, iter, &r->resource) && | 270 ParamTraits<ppapi::HostResource>::Read(m, iter, &r->resource) && |
271 ParamTraits<int>::Read(m, iter, &r->file_system_type) && | 271 ParamTraits<int>::Read(m, iter, &r->file_system_type) && |
272 ParamTraits<std::string>::Read(m, iter, &r->path) && | 272 ParamTraits<std::string>::Read(m, iter, &r->path) && |
273 ParamTraits<std::string>::Read(m, iter, &r->name); | 273 ParamTraits<std::string>::Read(m, iter, &r->name); |
274 } | 274 } |
275 | 275 |
276 // static | 276 // static |
277 void ParamTraits<ppapi::PPB_FileRef_CreateInfo>::Log(const param_type& p, | 277 void ParamTraits<ppapi::PPB_FileRef_CreateInfo>::Log(const param_type& p, |
(...skipping 10 matching lines...) Expand all Loading... |
288 ParamTraits<ppapi::HostResource>::Write(m, p.resource); | 288 ParamTraits<ppapi::HostResource>::Write(m, p.resource); |
289 ParamTraits<int64_t>::Write(m, p.bytes_sent); | 289 ParamTraits<int64_t>::Write(m, p.bytes_sent); |
290 ParamTraits<int64_t>::Write(m, p.total_bytes_to_be_sent); | 290 ParamTraits<int64_t>::Write(m, p.total_bytes_to_be_sent); |
291 ParamTraits<int64_t>::Write(m, p.bytes_received); | 291 ParamTraits<int64_t>::Write(m, p.bytes_received); |
292 ParamTraits<int64_t>::Write(m, p.total_bytes_to_be_received); | 292 ParamTraits<int64_t>::Write(m, p.total_bytes_to_be_received); |
293 } | 293 } |
294 | 294 |
295 // static | 295 // static |
296 bool ParamTraits<ppapi::proxy::PPBURLLoader_UpdateProgress_Params>::Read( | 296 bool ParamTraits<ppapi::proxy::PPBURLLoader_UpdateProgress_Params>::Read( |
297 const Message* m, | 297 const Message* m, |
298 void** iter, | 298 PickleReader* iter, |
299 param_type* r) { | 299 param_type* r) { |
300 return | 300 return |
301 ParamTraits<PP_Instance>::Read(m, iter, &r->instance) && | 301 ParamTraits<PP_Instance>::Read(m, iter, &r->instance) && |
302 ParamTraits<ppapi::HostResource>::Read(m, iter, &r->resource) && | 302 ParamTraits<ppapi::HostResource>::Read(m, iter, &r->resource) && |
303 ParamTraits<int64_t>::Read(m, iter, &r->bytes_sent) && | 303 ParamTraits<int64_t>::Read(m, iter, &r->bytes_sent) && |
304 ParamTraits<int64_t>::Read(m, iter, &r->total_bytes_to_be_sent) && | 304 ParamTraits<int64_t>::Read(m, iter, &r->total_bytes_to_be_sent) && |
305 ParamTraits<int64_t>::Read(m, iter, &r->bytes_received) && | 305 ParamTraits<int64_t>::Read(m, iter, &r->bytes_received) && |
306 ParamTraits<int64_t>::Read(m, iter, &r->total_bytes_to_be_received); | 306 ParamTraits<int64_t>::Read(m, iter, &r->total_bytes_to_be_received); |
307 } | 307 } |
308 | 308 |
309 // static | 309 // static |
310 void ParamTraits<ppapi::proxy::PPBURLLoader_UpdateProgress_Params>::Log( | 310 void ParamTraits<ppapi::proxy::PPBURLLoader_UpdateProgress_Params>::Log( |
311 const param_type& p, | 311 const param_type& p, |
312 std::string* l) { | 312 std::string* l) { |
313 } | 313 } |
314 | 314 |
315 // SerializedDirEntry ---------------------------------------------------------- | 315 // SerializedDirEntry ---------------------------------------------------------- |
316 | 316 |
317 // static | 317 // static |
318 void ParamTraits<ppapi::proxy::SerializedDirEntry>::Write(Message* m, | 318 void ParamTraits<ppapi::proxy::SerializedDirEntry>::Write(Message* m, |
319 const param_type& p) { | 319 const param_type& p) { |
320 ParamTraits<std::string>::Write(m, p.name); | 320 ParamTraits<std::string>::Write(m, p.name); |
321 ParamTraits<bool>::Write(m, p.is_dir); | 321 ParamTraits<bool>::Write(m, p.is_dir); |
322 } | 322 } |
323 | 323 |
324 // static | 324 // static |
325 bool ParamTraits<ppapi::proxy::SerializedDirEntry>::Read(const Message* m, | 325 bool ParamTraits<ppapi::proxy::SerializedDirEntry>::Read(const Message* m, |
326 void** iter, | 326 PickleReader* iter, |
327 param_type* r) { | 327 param_type* r) { |
328 return ParamTraits<std::string>::Read(m, iter, &r->name) && | 328 return ParamTraits<std::string>::Read(m, iter, &r->name) && |
329 ParamTraits<bool>::Read(m, iter, &r->is_dir); | 329 ParamTraits<bool>::Read(m, iter, &r->is_dir); |
330 } | 330 } |
331 | 331 |
332 // static | 332 // static |
333 void ParamTraits<ppapi::proxy::SerializedDirEntry>::Log(const param_type& p, | 333 void ParamTraits<ppapi::proxy::SerializedDirEntry>::Log(const param_type& p, |
334 std::string* l) { | 334 std::string* l) { |
335 } | 335 } |
336 | 336 |
337 // ppapi::proxy::SerializedFontDescription ------------------------------------- | 337 // ppapi::proxy::SerializedFontDescription ------------------------------------- |
338 | 338 |
339 // static | 339 // static |
340 void ParamTraits<ppapi::proxy::SerializedFontDescription>::Write( | 340 void ParamTraits<ppapi::proxy::SerializedFontDescription>::Write( |
341 Message* m, | 341 Message* m, |
342 const param_type& p) { | 342 const param_type& p) { |
343 ParamTraits<ppapi::proxy::SerializedVar>::Write(m, p.face); | 343 ParamTraits<ppapi::proxy::SerializedVar>::Write(m, p.face); |
344 ParamTraits<int32_t>::Write(m, p.family); | 344 ParamTraits<int32_t>::Write(m, p.family); |
345 ParamTraits<uint32_t>::Write(m, p.size); | 345 ParamTraits<uint32_t>::Write(m, p.size); |
346 ParamTraits<int32_t>::Write(m, p.weight); | 346 ParamTraits<int32_t>::Write(m, p.weight); |
347 ParamTraits<PP_Bool>::Write(m, p.italic); | 347 ParamTraits<PP_Bool>::Write(m, p.italic); |
348 ParamTraits<PP_Bool>::Write(m, p.small_caps); | 348 ParamTraits<PP_Bool>::Write(m, p.small_caps); |
349 ParamTraits<int32_t>::Write(m, p.letter_spacing); | 349 ParamTraits<int32_t>::Write(m, p.letter_spacing); |
350 ParamTraits<int32_t>::Write(m, p.word_spacing); | 350 ParamTraits<int32_t>::Write(m, p.word_spacing); |
351 } | 351 } |
352 | 352 |
353 // static | 353 // static |
354 bool ParamTraits<ppapi::proxy::SerializedFontDescription>::Read( | 354 bool ParamTraits<ppapi::proxy::SerializedFontDescription>::Read( |
355 const Message* m, | 355 const Message* m, |
356 void** iter, | 356 PickleReader* iter, |
357 param_type* r) { | 357 param_type* r) { |
358 return | 358 return |
359 ParamTraits<ppapi::proxy::SerializedVar>::Read(m, iter, &r->face) && | 359 ParamTraits<ppapi::proxy::SerializedVar>::Read(m, iter, &r->face) && |
360 ParamTraits<int32_t>::Read(m, iter, &r->family) && | 360 ParamTraits<int32_t>::Read(m, iter, &r->family) && |
361 ParamTraits<uint32_t>::Read(m, iter, &r->size) && | 361 ParamTraits<uint32_t>::Read(m, iter, &r->size) && |
362 ParamTraits<int32_t>::Read(m, iter, &r->weight) && | 362 ParamTraits<int32_t>::Read(m, iter, &r->weight) && |
363 ParamTraits<PP_Bool>::Read(m, iter, &r->italic) && | 363 ParamTraits<PP_Bool>::Read(m, iter, &r->italic) && |
364 ParamTraits<PP_Bool>::Read(m, iter, &r->small_caps) && | 364 ParamTraits<PP_Bool>::Read(m, iter, &r->small_caps) && |
365 ParamTraits<int32_t>::Read(m, iter, &r->letter_spacing) && | 365 ParamTraits<int32_t>::Read(m, iter, &r->letter_spacing) && |
366 ParamTraits<int32_t>::Read(m, iter, &r->word_spacing); | 366 ParamTraits<int32_t>::Read(m, iter, &r->word_spacing); |
367 } | 367 } |
368 | 368 |
369 // static | 369 // static |
370 void ParamTraits<ppapi::proxy::SerializedFontDescription>::Log( | 370 void ParamTraits<ppapi::proxy::SerializedFontDescription>::Log( |
371 const param_type& p, | 371 const param_type& p, |
372 std::string* l) { | 372 std::string* l) { |
373 } | 373 } |
374 | 374 |
375 // HostResource ---------------------------------------------------------------- | 375 // HostResource ---------------------------------------------------------------- |
376 | 376 |
377 // static | 377 // static |
378 void ParamTraits<ppapi::HostResource>::Write(Message* m, | 378 void ParamTraits<ppapi::HostResource>::Write(Message* m, |
379 const param_type& p) { | 379 const param_type& p) { |
380 ParamTraits<PP_Instance>::Write(m, p.instance()); | 380 ParamTraits<PP_Instance>::Write(m, p.instance()); |
381 ParamTraits<PP_Resource>::Write(m, p.host_resource()); | 381 ParamTraits<PP_Resource>::Write(m, p.host_resource()); |
382 } | 382 } |
383 | 383 |
384 // static | 384 // static |
385 bool ParamTraits<ppapi::HostResource>::Read(const Message* m, | 385 bool ParamTraits<ppapi::HostResource>::Read(const Message* m, |
386 void** iter, | 386 PickleReader* iter, |
387 param_type* r) { | 387 param_type* r) { |
388 PP_Instance instance; | 388 PP_Instance instance; |
389 PP_Resource resource; | 389 PP_Resource resource; |
390 if (!ParamTraits<PP_Instance>::Read(m, iter, &instance) || | 390 if (!ParamTraits<PP_Instance>::Read(m, iter, &instance) || |
391 !ParamTraits<PP_Resource>::Read(m, iter, &resource)) | 391 !ParamTraits<PP_Resource>::Read(m, iter, &resource)) |
392 return false; | 392 return false; |
393 r->SetHostResource(instance, resource); | 393 r->SetHostResource(instance, resource); |
394 return true; | 394 return true; |
395 } | 395 } |
396 | 396 |
397 // static | 397 // static |
398 void ParamTraits<ppapi::HostResource>::Log(const param_type& p, | 398 void ParamTraits<ppapi::HostResource>::Log(const param_type& p, |
399 std::string* l) { | 399 std::string* l) { |
400 } | 400 } |
401 | 401 |
402 // SerializedVar --------------------------------------------------------------- | 402 // SerializedVar --------------------------------------------------------------- |
403 | 403 |
404 // static | 404 // static |
405 void ParamTraits<ppapi::proxy::SerializedVar>::Write(Message* m, | 405 void ParamTraits<ppapi::proxy::SerializedVar>::Write(Message* m, |
406 const param_type& p) { | 406 const param_type& p) { |
407 p.WriteToMessage(m); | 407 p.WriteToMessage(m); |
408 } | 408 } |
409 | 409 |
410 // static | 410 // static |
411 bool ParamTraits<ppapi::proxy::SerializedVar>::Read(const Message* m, | 411 bool ParamTraits<ppapi::proxy::SerializedVar>::Read(const Message* m, |
412 void** iter, | 412 PickleReader* iter, |
413 param_type* r) { | 413 param_type* r) { |
414 return r->ReadFromMessage(m, iter); | 414 return r->ReadFromMessage(m, iter); |
415 } | 415 } |
416 | 416 |
417 // static | 417 // static |
418 void ParamTraits<ppapi::proxy::SerializedVar>::Log(const param_type& p, | 418 void ParamTraits<ppapi::proxy::SerializedVar>::Log(const param_type& p, |
419 std::string* l) { | 419 std::string* l) { |
420 } | 420 } |
421 | 421 |
422 // std::vector<SerializedVar> -------------------------------------------------- | 422 // std::vector<SerializedVar> -------------------------------------------------- |
423 | 423 |
424 void ParamTraits< std::vector<ppapi::proxy::SerializedVar> >::Write( | 424 void ParamTraits< std::vector<ppapi::proxy::SerializedVar> >::Write( |
425 Message* m, | 425 Message* m, |
426 const param_type& p) { | 426 const param_type& p) { |
427 WriteVectorWithoutCopy(m, p); | 427 WriteVectorWithoutCopy(m, p); |
428 } | 428 } |
429 | 429 |
430 // static | 430 // static |
431 bool ParamTraits< std::vector<ppapi::proxy::SerializedVar> >::Read( | 431 bool ParamTraits< std::vector<ppapi::proxy::SerializedVar> >::Read( |
432 const Message* m, | 432 const Message* m, |
433 void** iter, | 433 PickleReader* iter, |
434 param_type* r) { | 434 param_type* r) { |
435 return ReadVectorWithoutCopy(m, iter, r); | 435 return ReadVectorWithoutCopy(m, iter, r); |
436 } | 436 } |
437 | 437 |
438 // static | 438 // static |
439 void ParamTraits< std::vector<ppapi::proxy::SerializedVar> >::Log( | 439 void ParamTraits< std::vector<ppapi::proxy::SerializedVar> >::Log( |
440 const param_type& p, | 440 const param_type& p, |
441 std::string* l) { | 441 std::string* l) { |
442 } | 442 } |
443 | 443 |
444 // std::vector<PPB_FileRef_CreateInfo> ----------------------------------------- | 444 // std::vector<PPB_FileRef_CreateInfo> ----------------------------------------- |
445 | 445 |
446 void ParamTraits< std::vector<ppapi::PPB_FileRef_CreateInfo> >::Write( | 446 void ParamTraits< std::vector<ppapi::PPB_FileRef_CreateInfo> >::Write( |
447 Message* m, | 447 Message* m, |
448 const param_type& p) { | 448 const param_type& p) { |
449 WriteVectorWithoutCopy(m, p); | 449 WriteVectorWithoutCopy(m, p); |
450 } | 450 } |
451 | 451 |
452 // static | 452 // static |
453 bool ParamTraits< std::vector<ppapi::PPB_FileRef_CreateInfo> >::Read( | 453 bool ParamTraits< std::vector<ppapi::PPB_FileRef_CreateInfo> >::Read( |
454 const Message* m, | 454 const Message* m, |
455 void** iter, | 455 PickleReader* iter, |
456 param_type* r) { | 456 param_type* r) { |
457 return ReadVectorWithoutCopy(m, iter, r); | 457 return ReadVectorWithoutCopy(m, iter, r); |
458 } | 458 } |
459 | 459 |
460 // static | 460 // static |
461 void ParamTraits< std::vector<ppapi::PPB_FileRef_CreateInfo> >::Log( | 461 void ParamTraits< std::vector<ppapi::PPB_FileRef_CreateInfo> >::Log( |
462 const param_type& p, | 462 const param_type& p, |
463 std::string* l) { | 463 std::string* l) { |
464 } | 464 } |
465 | 465 |
466 // SerializedFlashMenu --------------------------------------------------------- | 466 // SerializedFlashMenu --------------------------------------------------------- |
467 | 467 |
468 // static | 468 // static |
469 void ParamTraits<ppapi::proxy::SerializedFlashMenu>::Write( | 469 void ParamTraits<ppapi::proxy::SerializedFlashMenu>::Write( |
470 Message* m, | 470 Message* m, |
471 const param_type& p) { | 471 const param_type& p) { |
472 p.WriteToMessage(m); | 472 p.WriteToMessage(m); |
473 } | 473 } |
474 | 474 |
475 // static | 475 // static |
476 bool ParamTraits<ppapi::proxy::SerializedFlashMenu>::Read(const Message* m, | 476 bool ParamTraits<ppapi::proxy::SerializedFlashMenu>::Read(const Message* m, |
477 void** iter, | 477 PickleReader* iter, |
478 param_type* r) { | 478 param_type* r) { |
479 return r->ReadFromMessage(m, iter); | 479 return r->ReadFromMessage(m, iter); |
480 } | 480 } |
481 | 481 |
482 // static | 482 // static |
483 void ParamTraits<ppapi::proxy::SerializedFlashMenu>::Log(const param_type& p, | 483 void ParamTraits<ppapi::proxy::SerializedFlashMenu>::Log(const param_type& p, |
484 std::string* l) { | 484 std::string* l) { |
485 } | 485 } |
486 | 486 |
487 } // namespace IPC | 487 } // namespace IPC |
OLD | NEW |