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

Side by Side Diff: chrome/common/common_param_traits.h

Issue 3119035: FBTF: Move individual XXXMsg_Params structs to a new file. (Closed) Base URL: http://src.chromium.org/git/chromium.git
Patch Set: Fix comment Created 10 years, 3 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
« no previous file with comments | « chrome/chrome_common.gypi ('k') | chrome/common/common_param_traits.cc » ('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) 2010 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 // This file is used to define IPC::ParamTraits<> specializations for a number 5 // This file is used to define IPC::ParamTraits<> specializations for a number
6 // of types so that they can be serialized over IPC. IPC::ParamTraits<> 6 // of types so that they can be serialized over IPC. IPC::ParamTraits<>
7 // specializations for basic types (like int and std::string) and types in the 7 // specializations for basic types (like int and std::string) and types in the
8 // 'base' project can be found in ipc/ipc_message_utils.h. This file contains 8 // 'base' project can be found in ipc/ipc_message_utils.h. This file contains
9 // specializations for types that are shared by more than one child process. 9 // specializations for types that are shared by more than one child process.
10 10
11 #ifndef CHROME_COMMON_COMMON_PARAM_TRAITS_H_ 11 #ifndef CHROME_COMMON_COMMON_PARAM_TRAITS_H_
12 #define CHROME_COMMON_COMMON_PARAM_TRAITS_H_ 12 #define CHROME_COMMON_COMMON_PARAM_TRAITS_H_
13 #pragma once 13 #pragma once
14 14
15 #include <vector> 15 #include <vector>
16 16
17 #include "app/surface/transport_dib.h" 17 #include "app/surface/transport_dib.h"
18 #include "base/ref_counted.h"
18 #include "chrome/common/content_settings.h" 19 #include "chrome/common/content_settings.h"
19 #include "chrome/common/geoposition.h"
20 #include "chrome/common/page_zoom.h" 20 #include "chrome/common/page_zoom.h"
21 #include "gfx/native_widget_types.h" 21 #include "gfx/native_widget_types.h"
22 #include "ipc/ipc_message_utils.h" 22 #include "ipc/ipc_message_utils.h"
23 #include "net/base/upload_data.h"
24 #include "net/url_request/url_request_status.h" 23 #include "net/url_request/url_request_status.h"
25 #include "printing/native_metafile.h" 24 #include "printing/native_metafile.h"
26 #include "webkit/glue/webcursor.h" 25 #include "webkit/glue/webcursor.h"
27 #include "webkit/glue/window_open_disposition.h" 26 #include "webkit/glue/window_open_disposition.h"
28 27
29 // Forward declarations. 28 // Forward declarations.
29 struct Geoposition;
30 class GURL; 30 class GURL;
31 class SkBitmap; 31 class SkBitmap;
32 class DictionaryValue; 32 class DictionaryValue;
33 class ListValue; 33 class ListValue;
34 struct ThumbnailScore; 34 struct ThumbnailScore;
35 class URLRequestStatus; 35 class URLRequestStatus;
36 class WebCursor; 36 class WebCursor;
37 37
38 namespace gfx { 38 namespace gfx {
39 class Point; 39 class Point;
40 class Rect; 40 class Rect;
41 class Size; 41 class Size;
42 } // namespace gfx 42 } // namespace gfx
43 43
44 namespace net {
45 class UploadData;
46 }
47
44 namespace printing { 48 namespace printing {
45 struct PageRange; 49 struct PageRange;
46 } // namespace printing 50 } // namespace printing
47 51
48 namespace webkit_glue { 52 namespace webkit_glue {
49 struct PasswordForm; 53 struct PasswordForm;
50 struct WebApplicationInfo; 54 struct WebApplicationInfo;
51 } // namespace webkit_glue 55 } // namespace webkit_glue
52 56
53 namespace IPC { 57 namespace IPC {
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 256
253 // Traits for URLRequestStatus 257 // Traits for URLRequestStatus
254 template <> 258 template <>
255 struct ParamTraits<URLRequestStatus> { 259 struct ParamTraits<URLRequestStatus> {
256 typedef URLRequestStatus param_type; 260 typedef URLRequestStatus param_type;
257 static void Write(Message* m, const param_type& p); 261 static void Write(Message* m, const param_type& p);
258 static bool Read(const Message* m, void** iter, param_type* r); 262 static bool Read(const Message* m, void** iter, param_type* r);
259 static void Log(const param_type& p, std::string* l); 263 static void Log(const param_type& p, std::string* l);
260 }; 264 };
261 265
262
263 // Traits for net::UploadData::Element.
264 template <>
265 struct ParamTraits<net::UploadData::Element> {
266 typedef net::UploadData::Element param_type;
267 static void Write(Message* m, const param_type& p) {
268 WriteParam(m, static_cast<int>(p.type()));
269 if (p.type() == net::UploadData::TYPE_BYTES) {
270 m->WriteData(&p.bytes()[0], static_cast<int>(p.bytes().size()));
271 } else {
272 WriteParam(m, p.file_path());
273 WriteParam(m, p.file_range_offset());
274 WriteParam(m, p.file_range_length());
275 WriteParam(m, p.expected_file_modification_time());
276 }
277 }
278 static bool Read(const Message* m, void** iter, param_type* r) {
279 int type;
280 if (!ReadParam(m, iter, &type))
281 return false;
282 if (type == net::UploadData::TYPE_BYTES) {
283 const char* data;
284 int len;
285 if (!m->ReadData(iter, &data, &len))
286 return false;
287 r->SetToBytes(data, len);
288 } else {
289 DCHECK(type == net::UploadData::TYPE_FILE);
290 FilePath file_path;
291 uint64 offset, length;
292 base::Time expected_modification_time;
293 if (!ReadParam(m, iter, &file_path))
294 return false;
295 if (!ReadParam(m, iter, &offset))
296 return false;
297 if (!ReadParam(m, iter, &length))
298 return false;
299 if (!ReadParam(m, iter, &expected_modification_time))
300 return false;
301 r->SetToFilePathRange(file_path, offset, length,
302 expected_modification_time);
303 }
304 return true;
305 }
306 static void Log(const param_type& p, std::string* l) {
307 l->append("<net::UploadData::Element>");
308 }
309 };
310
311 // Traits for net::UploadData. 266 // Traits for net::UploadData.
312 template <> 267 template <>
313 struct ParamTraits<scoped_refptr<net::UploadData> > { 268 struct ParamTraits<scoped_refptr<net::UploadData> > {
314 typedef scoped_refptr<net::UploadData> param_type; 269 typedef scoped_refptr<net::UploadData> param_type;
315 static void Write(Message* m, const param_type& p) { 270 static void Write(Message* m, const param_type& p);
316 WriteParam(m, p.get() != NULL); 271 static bool Read(const Message* m, void** iter, param_type* r);
317 if (p) { 272 static void Log(const param_type& p, std::string* l);
318 WriteParam(m, *p->elements());
319 WriteParam(m, p->identifier());
320 }
321 }
322 static bool Read(const Message* m, void** iter, param_type* r) {
323 bool has_object;
324 if (!ReadParam(m, iter, &has_object))
325 return false;
326 if (!has_object)
327 return true;
328 std::vector<net::UploadData::Element> elements;
329 if (!ReadParam(m, iter, &elements))
330 return false;
331 int64 identifier;
332 if (!ReadParam(m, iter, &identifier))
333 return false;
334 *r = new net::UploadData;
335 (*r)->swap_elements(&elements);
336 (*r)->set_identifier(identifier);
337 return true;
338 }
339 static void Log(const param_type& p, std::string* l) {
340 l->append("<net::UploadData>");
341 }
342 }; 273 };
343 274
344 template<> 275 template<>
345 struct ParamTraits<ThumbnailScore> { 276 struct ParamTraits<ThumbnailScore> {
346 typedef ThumbnailScore param_type; 277 typedef ThumbnailScore param_type;
347 static void Write(Message* m, const param_type& p); 278 static void Write(Message* m, const param_type& p);
348 static bool Read(const Message* m, void** iter, param_type* r); 279 static bool Read(const Message* m, void** iter, param_type* r);
349 static void Log(const param_type& p, std::string* l); 280 static void Log(const param_type& p, std::string* l);
350 }; 281 };
351 282
352 template <> 283 template <>
353 struct ParamTraits<Geoposition> { 284 struct ParamTraits<Geoposition> {
354 typedef Geoposition param_type; 285 typedef Geoposition param_type;
355 static void Write(Message* m, const param_type& p); 286 static void Write(Message* m, const param_type& p);
356 static bool Read(const Message* m, void** iter, param_type* p); 287 static bool Read(const Message* m, void** iter, param_type* p);
357 static void Log(const param_type& p, std::string* l); 288 static void Log(const param_type& p, std::string* l);
358 }; 289 };
359 290
360 template <> 291 template <>
361 struct ParamTraits<Geoposition::ErrorCode> {
362 typedef Geoposition::ErrorCode param_type;
363 static void Write(Message* m, const param_type& p);
364 static bool Read(const Message* m, void** iter, param_type* p);
365 static void Log(const param_type& p, std::string* l);
366 };
367
368 template <>
369 struct ParamTraits<webkit_glue::PasswordForm> { 292 struct ParamTraits<webkit_glue::PasswordForm> {
370 typedef webkit_glue::PasswordForm param_type; 293 typedef webkit_glue::PasswordForm param_type;
371 static void Write(Message* m, const param_type& p); 294 static void Write(Message* m, const param_type& p);
372 static bool Read(const Message* m, void** iter, param_type* p); 295 static bool Read(const Message* m, void** iter, param_type* p);
373 static void Log(const param_type& p, std::string* l); 296 static void Log(const param_type& p, std::string* l);
374 }; 297 };
375 298
376 template <> 299 template <>
377 struct ParamTraits<printing::PageRange> { 300 struct ParamTraits<printing::PageRange> {
378 typedef printing::PageRange param_type; 301 typedef printing::PageRange param_type;
379 static void Write(Message* m, const param_type& p); 302 static void Write(Message* m, const param_type& p);
380 static bool Read(const Message* m, void** iter, param_type* r); 303 static bool Read(const Message* m, void** iter, param_type* r);
381 static void Log(const param_type& p, std::string* l); 304 static void Log(const param_type& p, std::string* l);
382 }; 305 };
383 306
384 template <> 307 template <>
385 struct ParamTraits<printing::NativeMetafile> { 308 struct ParamTraits<printing::NativeMetafile> {
386 typedef printing::NativeMetafile param_type; 309 typedef printing::NativeMetafile param_type;
387 static void Write(Message* m, const param_type& p); 310 static void Write(Message* m, const param_type& p);
388 static bool Read(const Message* m, void** iter, param_type* r); 311 static bool Read(const Message* m, void** iter, param_type* r);
389 static void Log(const param_type& p, std::string* l); 312 static void Log(const param_type& p, std::string* l);
390 }; 313 };
391 314
392 } // namespace IPC 315 } // namespace IPC
393 316
394 #endif // CHROME_COMMON_COMMON_PARAM_TRAITS_H_ 317 #endif // CHROME_COMMON_COMMON_PARAM_TRAITS_H_
OLDNEW
« no previous file with comments | « chrome/chrome_common.gypi ('k') | chrome/common/common_param_traits.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698