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

Side by Side Diff: ppapi/native_client/src/trusted/plugin/service_runtime.h

Issue 249183004: Implement open_resource in non-SFI mode. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 7 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 | Annotate | Revision Log
OLDNEW
1 /* -*- c++ -*- */ 1 /* -*- c++ -*- */
2 /* 2 /*
3 * Copyright (c) 2012 The Chromium Authors. All rights reserved. 3 * Copyright (c) 2012 The Chromium Authors. All rights reserved.
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 // A class containing information regarding a socket connection to a 8 // A class containing information regarding a socket connection to a
9 // service runtime instance. 9 // service runtime instance.
10 10
(...skipping 23 matching lines...) Expand all
34 } // namespace 34 } // namespace
35 35
36 namespace pp { 36 namespace pp {
37 class FileIO; 37 class FileIO;
38 } // namespace 38 } // namespace
39 39
40 namespace plugin { 40 namespace plugin {
41 41
42 class ErrorInfo; 42 class ErrorInfo;
43 class Manifest; 43 class Manifest;
44 class OpenManifestEntryAsyncCallback;
44 class Plugin; 45 class Plugin;
45 class SrpcClient; 46 class SrpcClient;
46 class ServiceRuntime; 47 class ServiceRuntime;
47 48
48 // Struct of params used by StartSelLdr. Use a struct so that callback 49 // Struct of params used by StartSelLdr. Use a struct so that callback
49 // creation templates aren't overwhelmed with too many parameters. 50 // creation templates aren't overwhelmed with too many parameters.
50 struct SelLdrStartParams { 51 struct SelLdrStartParams {
51 SelLdrStartParams(const nacl::string& url, 52 SelLdrStartParams(const nacl::string& url,
52 bool uses_irt, 53 bool uses_irt,
53 bool uses_ppapi, 54 bool uses_ppapi,
(...skipping 26 matching lines...) Expand all
80 public: 81 public:
81 explicit PostMessageResource(std::string msg) 82 explicit PostMessageResource(std::string msg)
82 : message(msg) {} 83 : message(msg) {}
83 std::string message; 84 std::string message;
84 }; 85 };
85 86
86 struct OpenManifestEntryResource { 87 struct OpenManifestEntryResource {
87 public: 88 public:
88 OpenManifestEntryResource(const std::string& target_url, 89 OpenManifestEntryResource(const std::string& target_url,
89 struct NaClFileInfo* finfo, 90 struct NaClFileInfo* finfo,
90 bool* op_complete) 91 bool* op_complete,
92 OpenManifestEntryAsyncCallback* callback)
91 : url(target_url), 93 : url(target_url),
92 file_info(finfo), 94 file_info(finfo),
93 op_complete_ptr(op_complete) {} 95 op_complete_ptr(op_complete),
96 callback(callback) {}
97 ~OpenManifestEntryResource();
98 void MaybeRunCallback(int32_t pp_error);
99
94 std::string url; 100 std::string url;
95 struct NaClFileInfo* file_info; 101 struct NaClFileInfo* file_info;
96 bool* op_complete_ptr; 102 bool* op_complete_ptr;
103 OpenManifestEntryAsyncCallback* callback;
97 }; 104 };
98 105
99 struct CloseManifestEntryResource { 106 struct CloseManifestEntryResource {
100 public: 107 public:
101 CloseManifestEntryResource(int32_t desc_to_close, 108 CloseManifestEntryResource(int32_t desc_to_close,
102 bool* op_complete, 109 bool* op_complete,
103 bool* op_result) 110 bool* op_result)
104 : desc(desc_to_close), 111 : desc(desc_to_close),
105 op_complete_ptr(op_complete), 112 op_complete_ptr(op_complete),
106 op_result_ptr(op_result) {} 113 op_result_ptr(op_result) {}
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 virtual void ReportExitStatus(int exit_status); 170 virtual void ReportExitStatus(int exit_status);
164 171
165 virtual int64_t RequestQuotaForWrite(nacl::string file_id, 172 virtual int64_t RequestQuotaForWrite(nacl::string file_id,
166 int64_t offset, 173 int64_t offset,
167 int64_t bytes_to_write); 174 int64_t bytes_to_write);
168 175
169 void AddQuotaManagedFile(const nacl::string& file_id, 176 void AddQuotaManagedFile(const nacl::string& file_id,
170 const pp::FileIO& file_io); 177 const pp::FileIO& file_io);
171 void AddTempQuotaManagedFile(const nacl::string& file_id); 178 void AddTempQuotaManagedFile(const nacl::string& file_id);
172 179
180 // This is a sibling of OpenManifestEntry. While OpenManifestEntry is
181 // a sync function and must be called on a non-main thread,
182 // OpenManifestEntryAsync must be called on the main thread. Upon completion
183 // (even on error), callback will be invoked. The caller has responsibility
184 // to keep the memory passed to info until callback is invoked.
185 void OpenManifestEntryAsync(const nacl::string& key,
186 struct NaClFileInfo* info,
187 OpenManifestEntryAsyncCallback* callback);
188
173 protected: 189 protected:
174 virtual void PostMessage_MainThreadContinuation(PostMessageResource* p, 190 virtual void PostMessage_MainThreadContinuation(PostMessageResource* p,
175 int32_t err); 191 int32_t err);
176 192
177 virtual void OpenManifestEntry_MainThreadContinuation( 193 virtual void OpenManifestEntry_MainThreadContinuation(
178 OpenManifestEntryResource* p, 194 OpenManifestEntryResource* p,
179 int32_t err); 195 int32_t err);
180 196
181 virtual void StreamAsFile_MainThreadContinuation( 197 virtual void StreamAsFile_MainThreadContinuation(
182 OpenManifestEntryResource* p, 198 OpenManifestEntryResource* p,
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 int exit_status_; 301 int exit_status_;
286 bool start_sel_ldr_done_; 302 bool start_sel_ldr_done_;
287 303
288 PP_Var start_sel_ldr_error_message_; 304 PP_Var start_sel_ldr_error_message_;
289 pp::CompletionCallbackFactory<ServiceRuntime> callback_factory_; 305 pp::CompletionCallbackFactory<ServiceRuntime> callback_factory_;
290 }; 306 };
291 307
292 } // namespace plugin 308 } // namespace plugin
293 309
294 #endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_SERVICE_RUNTIME_H_ 310 #endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_SERVICE_RUNTIME_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698