OLD | NEW |
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 #ifndef PPAPI_PROXY_RESOURCE_MESSAGE_PARAMS_H_ | 5 #ifndef PPAPI_PROXY_RESOURCE_MESSAGE_PARAMS_H_ |
6 #define PPAPI_PROXY_RESOURCE_MESSAGE_PARAMS_H_ | 6 #define PPAPI_PROXY_RESOURCE_MESSAGE_PARAMS_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
66 | 66 |
67 // Appends the given handle to the list of handles sent with the call or | 67 // Appends the given handle to the list of handles sent with the call or |
68 // reply. | 68 // reply. |
69 void AppendHandle(const SerializedHandle& handle) const; | 69 void AppendHandle(const SerializedHandle& handle) const; |
70 | 70 |
71 protected: | 71 protected: |
72 ResourceMessageParams(); | 72 ResourceMessageParams(); |
73 ResourceMessageParams(PP_Resource resource, int32_t sequence); | 73 ResourceMessageParams(PP_Resource resource, int32_t sequence); |
74 | 74 |
75 virtual void Serialize(IPC::Message* msg) const; | 75 virtual void Serialize(IPC::Message* msg) const; |
76 virtual bool Deserialize(const IPC::Message* msg, PickleIterator* iter); | 76 virtual bool Deserialize(const IPC::Message* msg, base::PickleIterator* iter); |
77 | 77 |
78 // Writes everything except the handles to |msg|. | 78 // Writes everything except the handles to |msg|. |
79 void WriteHeader(IPC::Message* msg) const; | 79 void WriteHeader(IPC::Message* msg) const; |
80 // Writes the handles to |msg|. | 80 // Writes the handles to |msg|. |
81 void WriteHandles(IPC::Message* msg) const; | 81 void WriteHandles(IPC::Message* msg) const; |
82 // Matching deserialize helpers. | 82 // Matching deserialize helpers. |
83 bool ReadHeader(const IPC::Message* msg, PickleIterator* iter); | 83 bool ReadHeader(const IPC::Message* msg, base::PickleIterator* iter); |
84 bool ReadHandles(const IPC::Message* msg, PickleIterator* iter); | 84 bool ReadHandles(const IPC::Message* msg, base::PickleIterator* iter); |
85 | 85 |
86 private: | 86 private: |
87 class PPAPI_PROXY_EXPORT SerializedHandles | 87 class PPAPI_PROXY_EXPORT SerializedHandles |
88 : public base::RefCountedThreadSafe<SerializedHandles> { | 88 : public base::RefCountedThreadSafe<SerializedHandles> { |
89 public: | 89 public: |
90 SerializedHandles(); | 90 SerializedHandles(); |
91 ~SerializedHandles(); | 91 ~SerializedHandles(); |
92 | 92 |
93 void set_should_close(bool value) { should_close_ = value; } | 93 void set_should_close(bool value) { should_close_ = value; } |
94 std::vector<SerializedHandle>& data() { return data_; } | 94 std::vector<SerializedHandle>& data() { return data_; } |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
138 : public ResourceMessageParams { | 138 : public ResourceMessageParams { |
139 public: | 139 public: |
140 ResourceMessageCallParams(); | 140 ResourceMessageCallParams(); |
141 ResourceMessageCallParams(PP_Resource resource, int32_t sequence); | 141 ResourceMessageCallParams(PP_Resource resource, int32_t sequence); |
142 ~ResourceMessageCallParams() override; | 142 ~ResourceMessageCallParams() override; |
143 | 143 |
144 void set_has_callback() { has_callback_ = true; } | 144 void set_has_callback() { has_callback_ = true; } |
145 bool has_callback() const { return has_callback_; } | 145 bool has_callback() const { return has_callback_; } |
146 | 146 |
147 void Serialize(IPC::Message* msg) const override; | 147 void Serialize(IPC::Message* msg) const override; |
148 bool Deserialize(const IPC::Message* msg, PickleIterator* iter) override; | 148 bool Deserialize(const IPC::Message* msg, |
| 149 base::PickleIterator* iter) override; |
149 | 150 |
150 private: | 151 private: |
151 bool has_callback_; | 152 bool has_callback_; |
152 }; | 153 }; |
153 | 154 |
154 // Parameters common to all ResourceMessage "Reply" requests. | 155 // Parameters common to all ResourceMessage "Reply" requests. |
155 class PPAPI_PROXY_EXPORT ResourceMessageReplyParams | 156 class PPAPI_PROXY_EXPORT ResourceMessageReplyParams |
156 : public ResourceMessageParams { | 157 : public ResourceMessageParams { |
157 public: | 158 public: |
158 ResourceMessageReplyParams(); | 159 ResourceMessageReplyParams(); |
159 ResourceMessageReplyParams(PP_Resource resource, int32_t sequence); | 160 ResourceMessageReplyParams(PP_Resource resource, int32_t sequence); |
160 ~ResourceMessageReplyParams() override; | 161 ~ResourceMessageReplyParams() override; |
161 | 162 |
162 void set_result(int32_t r) { result_ = r; } | 163 void set_result(int32_t r) { result_ = r; } |
163 int32_t result() const { return result_; } | 164 int32_t result() const { return result_; } |
164 | 165 |
165 void Serialize(IPC::Message* msg) const override; | 166 void Serialize(IPC::Message* msg) const override; |
166 bool Deserialize(const IPC::Message* msg, PickleIterator* iter) override; | 167 bool Deserialize(const IPC::Message* msg, |
| 168 base::PickleIterator* iter) override; |
167 | 169 |
168 // Writes everything except the handles to |msg|. | 170 // Writes everything except the handles to |msg|. |
169 void WriteReplyHeader(IPC::Message* msg) const; | 171 void WriteReplyHeader(IPC::Message* msg) const; |
170 | 172 |
171 private: | 173 private: |
172 // Pepper "result code" for the callback. | 174 // Pepper "result code" for the callback. |
173 int32_t result_; | 175 int32_t result_; |
174 }; | 176 }; |
175 | 177 |
176 } // namespace proxy | 178 } // namespace proxy |
177 } // namespace ppapi | 179 } // namespace ppapi |
178 | 180 |
179 namespace IPC { | 181 namespace IPC { |
180 | 182 |
181 template <> struct PPAPI_PROXY_EXPORT | 183 template <> struct PPAPI_PROXY_EXPORT |
182 ParamTraits<ppapi::proxy::ResourceMessageCallParams> { | 184 ParamTraits<ppapi::proxy::ResourceMessageCallParams> { |
183 typedef ppapi::proxy::ResourceMessageCallParams param_type; | 185 typedef ppapi::proxy::ResourceMessageCallParams param_type; |
184 static void Write(Message* m, const param_type& p) { | 186 static void Write(Message* m, const param_type& p) { |
185 p.Serialize(m); | 187 p.Serialize(m); |
186 } | 188 } |
187 static bool Read(const Message* m, PickleIterator* iter, param_type* r) { | 189 static bool Read(const Message* m, base::PickleIterator* iter, |
| 190 param_type* r) { |
188 return r->Deserialize(m, iter); | 191 return r->Deserialize(m, iter); |
189 } | 192 } |
190 static void Log(const param_type& p, std::string* l) { | 193 static void Log(const param_type& p, std::string* l) { |
191 } | 194 } |
192 }; | 195 }; |
193 | 196 |
194 template <> struct PPAPI_PROXY_EXPORT | 197 template <> struct PPAPI_PROXY_EXPORT |
195 ParamTraits<ppapi::proxy::ResourceMessageReplyParams> { | 198 ParamTraits<ppapi::proxy::ResourceMessageReplyParams> { |
196 typedef ppapi::proxy::ResourceMessageReplyParams param_type; | 199 typedef ppapi::proxy::ResourceMessageReplyParams param_type; |
197 static void Write(Message* m, const param_type& p) { | 200 static void Write(Message* m, const param_type& p) { |
198 p.Serialize(m); | 201 p.Serialize(m); |
199 } | 202 } |
200 static bool Read(const Message* m, PickleIterator* iter, param_type* r) { | 203 static bool Read(const Message* m, base::PickleIterator* iter, |
| 204 param_type* r) { |
201 return r->Deserialize(m, iter); | 205 return r->Deserialize(m, iter); |
202 } | 206 } |
203 static void Log(const param_type& p, std::string* l) { | 207 static void Log(const param_type& p, std::string* l) { |
204 } | 208 } |
205 }; | 209 }; |
206 | 210 |
207 } // namespace IPC | 211 } // namespace IPC |
208 | 212 |
209 #endif // PPAPI_PROXY_RESOURCE_MESSAGE_PARAMS_H_ | 213 #endif // PPAPI_PROXY_RESOURCE_MESSAGE_PARAMS_H_ |
OLD | NEW |