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

Side by Side Diff: content/public/common/common_param_traits.h

Issue 1149113006: Move Pickle to base namespace. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 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 | « content/common/resource_messages.h ('k') | content/zygote/zygote_linux.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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 used by the content code, and which need 9 // specializations for types that are used by the content code, and which need
10 // manual serialization code. This is usually because they're not structs with 10 // manual serialization code. This is usually because they're not structs with
(...skipping 22 matching lines...) Expand all
33 class HostPortPair; 33 class HostPortPair;
34 class IPEndPoint; 34 class IPEndPoint;
35 } 35 }
36 36
37 namespace IPC { 37 namespace IPC {
38 38
39 template <> 39 template <>
40 struct CONTENT_EXPORT ParamTraits<GURL> { 40 struct CONTENT_EXPORT ParamTraits<GURL> {
41 typedef GURL param_type; 41 typedef GURL param_type;
42 static void Write(Message* m, const param_type& p); 42 static void Write(Message* m, const param_type& p);
43 static bool Read(const Message* m, PickleIterator* iter, param_type* p); 43 static bool Read(const Message* m, base::PickleIterator* iter, param_type* p);
44 static void Log(const param_type& p, std::string* l); 44 static void Log(const param_type& p, std::string* l);
45 }; 45 };
46 46
47 template <> 47 template <>
48 struct CONTENT_EXPORT ParamTraits<url::Origin> { 48 struct CONTENT_EXPORT ParamTraits<url::Origin> {
49 typedef url::Origin param_type; 49 typedef url::Origin param_type;
50 static void Write(Message* m, const param_type& p); 50 static void Write(Message* m, const param_type& p);
51 static bool Read(const Message* m, PickleIterator* iter, param_type* p); 51 static bool Read(const Message* m, base::PickleIterator* iter, param_type* p);
52 static void Log(const param_type& p, std::string* l); 52 static void Log(const param_type& p, std::string* l);
53 }; 53 };
54 54
55 template<> 55 template<>
56 struct CONTENT_EXPORT ParamTraits<net::HostPortPair> { 56 struct CONTENT_EXPORT ParamTraits<net::HostPortPair> {
57 typedef net::HostPortPair param_type; 57 typedef net::HostPortPair param_type;
58 static void Write(Message* m, const param_type& p); 58 static void Write(Message* m, const param_type& p);
59 static bool Read(const Message* m, PickleIterator* iter, param_type* r); 59 static bool Read(const Message* m, base::PickleIterator* iter, param_type* r);
60 static void Log(const param_type& p, std::string* l); 60 static void Log(const param_type& p, std::string* l);
61 }; 61 };
62 62
63 template <> 63 template <>
64 struct CONTENT_EXPORT ParamTraits<net::IPEndPoint> { 64 struct CONTENT_EXPORT ParamTraits<net::IPEndPoint> {
65 typedef net::IPEndPoint param_type; 65 typedef net::IPEndPoint param_type;
66 static void Write(Message* m, const param_type& p); 66 static void Write(Message* m, const param_type& p);
67 static bool Read(const Message* m, PickleIterator* iter, param_type* p); 67 static bool Read(const Message* m, base::PickleIterator* iter, param_type* p);
68 static void Log(const param_type& p, std::string* l); 68 static void Log(const param_type& p, std::string* l);
69 }; 69 };
70 70
71 template <> 71 template <>
72 struct CONTENT_EXPORT ParamTraits<content::PageState> { 72 struct CONTENT_EXPORT ParamTraits<content::PageState> {
73 typedef content::PageState param_type; 73 typedef content::PageState param_type;
74 static void Write(Message* m, const param_type& p); 74 static void Write(Message* m, const param_type& p);
75 static bool Read(const Message* m, PickleIterator* iter, param_type* p); 75 static bool Read(const Message* m, base::PickleIterator* iter, param_type* p);
76 static void Log(const param_type& p, std::string* l); 76 static void Log(const param_type& p, std::string* l);
77 }; 77 };
78 78
79 template <> 79 template <>
80 struct ParamTraits<gfx::NativeWindow> { 80 struct ParamTraits<gfx::NativeWindow> {
81 typedef gfx::NativeWindow param_type; 81 typedef gfx::NativeWindow param_type;
82 static void Write(Message* m, const param_type& p) { 82 static void Write(Message* m, const param_type& p) {
83 #if defined(OS_WIN) 83 #if defined(OS_WIN)
84 // HWNDs are always 32 bits on Windows, even on 64 bit systems. 84 // HWNDs are always 32 bits on Windows, even on 64 bit systems.
85 m->WriteUInt32(reinterpret_cast<uint32>(p)); 85 m->WriteUInt32(reinterpret_cast<uint32>(p));
86 #else 86 #else
87 m->WriteData(reinterpret_cast<const char*>(&p), sizeof(p)); 87 m->WriteData(reinterpret_cast<const char*>(&p), sizeof(p));
88 #endif 88 #endif
89 } 89 }
90 static bool Read(const Message* m, PickleIterator* iter, param_type* r) { 90 static bool Read(const Message* m, base::PickleIterator* iter,
91 param_type* r) {
91 #if defined(OS_WIN) 92 #if defined(OS_WIN)
92 return iter->ReadUInt32(reinterpret_cast<uint32*>(r)); 93 return iter->ReadUInt32(reinterpret_cast<uint32*>(r));
93 #else 94 #else
94 const char *data; 95 const char *data;
95 int data_size = 0; 96 int data_size = 0;
96 bool result = iter->ReadData(&data, &data_size); 97 bool result = iter->ReadData(&data, &data_size);
97 if (result && data_size == sizeof(gfx::NativeWindow)) { 98 if (result && data_size == sizeof(gfx::NativeWindow)) {
98 memcpy(r, data, sizeof(gfx::NativeWindow)); 99 memcpy(r, data, sizeof(gfx::NativeWindow));
99 } else { 100 } else {
100 result = false; 101 result = false;
101 NOTREACHED(); 102 NOTREACHED();
102 } 103 }
103 return result; 104 return result;
104 #endif 105 #endif
105 } 106 }
106 static void Log(const param_type& p, std::string* l) { 107 static void Log(const param_type& p, std::string* l) {
107 l->append("<gfx::NativeWindow>"); 108 l->append("<gfx::NativeWindow>");
108 } 109 }
109 }; 110 };
110 111
111 #if defined(OS_WIN) 112 #if defined(OS_WIN)
112 template<> 113 template<>
113 struct ParamTraits<TransportDIB::Id> { 114 struct ParamTraits<TransportDIB::Id> {
114 typedef TransportDIB::Id param_type; 115 typedef TransportDIB::Id param_type;
115 static void Write(Message* m, const param_type& p) { 116 static void Write(Message* m, const param_type& p) {
116 WriteParam(m, p.handle); 117 WriteParam(m, p.handle);
117 WriteParam(m, p.sequence_num); 118 WriteParam(m, p.sequence_num);
118 } 119 }
119 static bool Read(const Message* m, PickleIterator* iter, param_type* r) { 120 static bool Read(const Message* m, base::PickleIterator* iter,
121 param_type* r) {
120 return (ReadParam(m, iter, &r->handle) && 122 return (ReadParam(m, iter, &r->handle) &&
121 ReadParam(m, iter, &r->sequence_num)); 123 ReadParam(m, iter, &r->sequence_num));
122 } 124 }
123 static void Log(const param_type& p, std::string* l) { 125 static void Log(const param_type& p, std::string* l) {
124 l->append("TransportDIB("); 126 l->append("TransportDIB(");
125 LogParam(p.handle, l); 127 LogParam(p.handle, l);
126 l->append(", "); 128 l->append(", ");
127 LogParam(p.sequence_num, l); 129 LogParam(p.sequence_num, l);
128 l->append(")"); 130 l->append(")");
129 } 131 }
130 }; 132 };
131 #endif 133 #endif
132 134
133 } // namespace IPC 135 } // namespace IPC
134 136
135 #endif // CONTENT_PUBLIC_COMMON_COMMON_PARAM_TRAITS_H_ 137 #endif // CONTENT_PUBLIC_COMMON_COMMON_PARAM_TRAITS_H_
OLDNEW
« no previous file with comments | « content/common/resource_messages.h ('k') | content/zygote/zygote_linux.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698