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

Side by Side Diff: ppapi/proxy/plugin_resource.h

Issue 11359097: Refactored the PPB_Flash_File_ModuleLocal/FileRef to the new ppapi resource model (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years 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/plugin_dispatcher.cc ('k') | ppapi/proxy/plugin_resource.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) 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_PLUGIN_RESOURCE_H_ 5 #ifndef PPAPI_PROXY_PLUGIN_RESOURCE_H_
6 #define PPAPI_PROXY_PLUGIN_RESOURCE_H_ 6 #define PPAPI_PROXY_PLUGIN_RESOURCE_H_
7 7
8 #include <map> 8 #include <map>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 int32_t SyncCall(Destination dest, const IPC::Message& msg, A* a, B* b); 119 int32_t SyncCall(Destination dest, const IPC::Message& msg, A* a, B* b);
120 template <class ReplyMsgClass, class A, class B, class C> 120 template <class ReplyMsgClass, class A, class B, class C>
121 int32_t SyncCall(Destination dest, const IPC::Message& msg, A* a, B* b, C* c); 121 int32_t SyncCall(Destination dest, const IPC::Message& msg, A* a, B* b, C* c);
122 template <class ReplyMsgClass, class A, class B, class C, class D> 122 template <class ReplyMsgClass, class A, class B, class C, class D>
123 int32_t SyncCall( 123 int32_t SyncCall(
124 Destination dest, const IPC::Message& msg, A* a, B* b, C* c, D* d); 124 Destination dest, const IPC::Message& msg, A* a, B* b, C* c, D* d);
125 template <class ReplyMsgClass, class A, class B, class C, class D, class E> 125 template <class ReplyMsgClass, class A, class B, class C, class D, class E>
126 int32_t SyncCall( 126 int32_t SyncCall(
127 Destination dest, const IPC::Message& msg, A* a, B* b, C* c, D* d, E* e); 127 Destination dest, const IPC::Message& msg, A* a, B* b, C* c, D* d, E* e);
128 128
129 int32_t GenericSyncCall(Destination dest,
130 const IPC::Message& msg,
131 IPC::Message* reply_msg,
132 ResourceMessageReplyParams* reply_params);
133
129 private: 134 private:
130 IPC::Sender* GetSender(Destination dest) { 135 IPC::Sender* GetSender(Destination dest) {
131 return dest == RENDERER ? connection_.renderer_sender : 136 return dest == RENDERER ? connection_.renderer_sender :
132 connection_.browser_sender; 137 connection_.browser_sender;
133 } 138 }
134 139
135 // Helper function to send a |PpapiHostMsg_ResourceCall| to the given 140 // Helper function to send a |PpapiHostMsg_ResourceCall| to the given
136 // destination with |nested_msg| and |call_params|. 141 // destination with |nested_msg| and |call_params|.
137 bool SendResourceCall(Destination dest, 142 bool SendResourceCall(Destination dest,
138 const ResourceMessageCallParams& call_params, 143 const ResourceMessageCallParams& call_params,
139 const IPC::Message& nested_msg); 144 const IPC::Message& nested_msg);
140 145
141 int32_t GenericSyncCall(Destination dest,
142 const IPC::Message& msg,
143 IPC::Message* reply_msg);
144
145 int32_t GetNextSequence(); 146 int32_t GetNextSequence();
146 147
147 Connection connection_; 148 Connection connection_;
148 149
149 // Use GetNextSequence to retrieve the next value. 150 // Use GetNextSequence to retrieve the next value.
150 int32_t next_sequence_number_; 151 int32_t next_sequence_number_;
151 152
152 bool sent_create_to_browser_; 153 bool sent_create_to_browser_;
153 bool sent_create_to_renderer_; 154 bool sent_create_to_renderer_;
154 155
(...skipping 15 matching lines...) Expand all
170 new PluginResourceCallback<ReplyMsgClass, CallbackType>(callback)); 171 new PluginResourceCallback<ReplyMsgClass, CallbackType>(callback));
171 callbacks_.insert(std::make_pair(params.sequence(), plugin_callback)); 172 callbacks_.insert(std::make_pair(params.sequence(), plugin_callback));
172 params.set_has_callback(); 173 params.set_has_callback();
173 SendResourceCall(dest, params, msg); 174 SendResourceCall(dest, params, msg);
174 return params.sequence(); 175 return params.sequence();
175 } 176 }
176 177
177 template <class ReplyMsgClass> 178 template <class ReplyMsgClass>
178 int32_t PluginResource::SyncCall(Destination dest, const IPC::Message& msg) { 179 int32_t PluginResource::SyncCall(Destination dest, const IPC::Message& msg) {
179 IPC::Message reply; 180 IPC::Message reply;
180 return GenericSyncCall(dest, msg, &reply); 181 ResourceMessageReplyParams reply_params;
182 return GenericSyncCall(dest, msg, &reply, &reply_params);
181 } 183 }
182 184
183 template <class ReplyMsgClass, class A> 185 template <class ReplyMsgClass, class A>
184 int32_t PluginResource::SyncCall( 186 int32_t PluginResource::SyncCall(
185 Destination dest, const IPC::Message& msg, A* a) { 187 Destination dest, const IPC::Message& msg, A* a) {
186 IPC::Message reply; 188 IPC::Message reply;
187 int32_t result = GenericSyncCall(dest, msg, &reply); 189 ResourceMessageReplyParams reply_params;
190 int32_t result = GenericSyncCall(dest, msg, &reply, &reply_params);
188 191
189 if (UnpackMessage<ReplyMsgClass>(reply, a)) 192 if (UnpackMessage<ReplyMsgClass>(reply, a))
190 return result; 193 return result;
191 return PP_ERROR_FAILED; 194 return PP_ERROR_FAILED;
192 } 195 }
193 196
194 template <class ReplyMsgClass, class A, class B> 197 template <class ReplyMsgClass, class A, class B>
195 int32_t PluginResource::SyncCall( 198 int32_t PluginResource::SyncCall(
196 Destination dest, const IPC::Message& msg, A* a, B* b) { 199 Destination dest, const IPC::Message& msg, A* a, B* b) {
197 IPC::Message reply; 200 IPC::Message reply;
198 int32_t result = GenericSyncCall(dest, msg, &reply); 201 ResourceMessageReplyParams reply_params;
202 int32_t result = GenericSyncCall(dest, msg, &reply, &reply_params);
199 203
200 if (UnpackMessage<ReplyMsgClass>(reply, a, b)) 204 if (UnpackMessage<ReplyMsgClass>(reply, a, b))
201 return result; 205 return result;
202 return PP_ERROR_FAILED; 206 return PP_ERROR_FAILED;
203 } 207 }
204 208
205 template <class ReplyMsgClass, class A, class B, class C> 209 template <class ReplyMsgClass, class A, class B, class C>
206 int32_t PluginResource::SyncCall( 210 int32_t PluginResource::SyncCall(
207 Destination dest, const IPC::Message& msg, A* a, B* b, C* c) { 211 Destination dest, const IPC::Message& msg, A* a, B* b, C* c) {
208 IPC::Message reply; 212 IPC::Message reply;
209 int32_t result = GenericSyncCall(dest, msg, &reply); 213 ResourceMessageReplyParams reply_params;
214 int32_t result = GenericSyncCall(dest, msg, &reply, &reply_params);
210 215
211 if (UnpackMessage<ReplyMsgClass>(reply, a, b, c)) 216 if (UnpackMessage<ReplyMsgClass>(reply, a, b, c))
212 return result; 217 return result;
213 return PP_ERROR_FAILED; 218 return PP_ERROR_FAILED;
214 } 219 }
215 220
216 template <class ReplyMsgClass, class A, class B, class C, class D> 221 template <class ReplyMsgClass, class A, class B, class C, class D>
217 int32_t PluginResource::SyncCall( 222 int32_t PluginResource::SyncCall(
218 Destination dest, const IPC::Message& msg, A* a, B* b, C* c, D* d) { 223 Destination dest, const IPC::Message& msg, A* a, B* b, C* c, D* d) {
219 IPC::Message reply; 224 IPC::Message reply;
220 int32_t result = GenericSyncCall(dest, msg, &reply); 225 ResourceMessageReplyParams reply_params;
226 int32_t result = GenericSyncCall(dest, msg, &reply, &reply_params);
221 227
222 if (UnpackMessage<ReplyMsgClass>(reply, a, b, c, d)) 228 if (UnpackMessage<ReplyMsgClass>(reply, a, b, c, d))
223 return result; 229 return result;
224 return PP_ERROR_FAILED; 230 return PP_ERROR_FAILED;
225 } 231 }
226 232
227 template <class ReplyMsgClass, class A, class B, class C, class D, class E> 233 template <class ReplyMsgClass, class A, class B, class C, class D, class E>
228 int32_t PluginResource::SyncCall( 234 int32_t PluginResource::SyncCall(
229 Destination dest, const IPC::Message& msg, A* a, B* b, C* c, D* d, E* e) { 235 Destination dest, const IPC::Message& msg, A* a, B* b, C* c, D* d, E* e) {
230 IPC::Message reply; 236 IPC::Message reply;
231 int32_t result = GenericSyncCall(dest, msg, &reply); 237 ResourceMessageReplyParams reply_params;
238 int32_t result = GenericSyncCall(dest, msg, &reply, &reply_params);
232 239
233 if (UnpackMessage<ReplyMsgClass>(reply, a, b, c, d, e)) 240 if (UnpackMessage<ReplyMsgClass>(reply, a, b, c, d, e))
234 return result; 241 return result;
235 return PP_ERROR_FAILED; 242 return PP_ERROR_FAILED;
236 } 243 }
237 244
238 } // namespace proxy 245 } // namespace proxy
239 } // namespace ppapi 246 } // namespace ppapi
240 247
241 #endif // PPAPI_PROXY_PLUGIN_RESOURCE_H_ 248 #endif // PPAPI_PROXY_PLUGIN_RESOURCE_H_
OLDNEW
« no previous file with comments | « ppapi/proxy/plugin_dispatcher.cc ('k') | ppapi/proxy/plugin_resource.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698