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

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

Issue 339213003: Pepper: Simplify OpenResource() for Non-SFI. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixes for hidehiko Created 6 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 | 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 16 matching lines...) Expand all
27 #include "ppapi/native_client/src/trusted/plugin/utility.h" 27 #include "ppapi/native_client/src/trusted/plugin/utility.h"
28 28
29 struct NaClFileInfo; 29 struct NaClFileInfo;
30 30
31 namespace nacl { 31 namespace nacl {
32 class DescWrapper; 32 class DescWrapper;
33 } // namespace 33 } // namespace
34 34
35 namespace plugin { 35 namespace plugin {
36 36
37 class OpenManifestEntryAsyncCallback;
38 class Plugin; 37 class Plugin;
39 class SrpcClient; 38 class SrpcClient;
40 class ServiceRuntime; 39 class ServiceRuntime;
41 40
42 // Struct of params used by StartSelLdr. Use a struct so that callback 41 // Struct of params used by StartSelLdr. Use a struct so that callback
43 // creation templates aren't overwhelmed with too many parameters. 42 // creation templates aren't overwhelmed with too many parameters.
44 struct SelLdrStartParams { 43 struct SelLdrStartParams {
45 SelLdrStartParams(const nacl::string& url, 44 SelLdrStartParams(const nacl::string& url,
46 bool uses_irt, 45 bool uses_irt,
47 bool uses_ppapi, 46 bool uses_ppapi,
(...skipping 17 matching lines...) Expand all
65 bool enable_dyncode_syscalls; 64 bool enable_dyncode_syscalls;
66 bool enable_exception_handling; 65 bool enable_exception_handling;
67 bool enable_crash_throttling; 66 bool enable_crash_throttling;
68 }; 67 };
69 68
70 // Callback resources are essentially our continuation state. 69 // Callback resources are essentially our continuation state.
71 struct OpenManifestEntryResource { 70 struct OpenManifestEntryResource {
72 public: 71 public:
73 OpenManifestEntryResource(const std::string& target_url, 72 OpenManifestEntryResource(const std::string& target_url,
74 struct NaClFileInfo* finfo, 73 struct NaClFileInfo* finfo,
75 bool* op_complete, 74 bool* op_complete)
76 OpenManifestEntryAsyncCallback* callback)
77 : url(target_url), 75 : url(target_url),
78 file_info(finfo), 76 file_info(finfo),
79 op_complete_ptr(op_complete), 77 op_complete_ptr(op_complete) {}
80 callback(callback) {}
81 ~OpenManifestEntryResource(); 78 ~OpenManifestEntryResource();
82 void MaybeRunCallback(int32_t pp_error);
83 79
84 std::string url; 80 std::string url;
85 struct NaClFileInfo* file_info; 81 struct NaClFileInfo* file_info;
86 PP_NaClFileInfo pp_file_info; 82 PP_NaClFileInfo pp_file_info;
87 bool* op_complete_ptr; 83 bool* op_complete_ptr;
88 OpenManifestEntryAsyncCallback* callback;
89 }; 84 };
90 85
91 // Do not invoke from the main thread, since the main methods will 86 // Do not invoke from the main thread, since the main methods will
92 // invoke CallOnMainThread and then wait on a condvar for the task to 87 // invoke CallOnMainThread and then wait on a condvar for the task to
93 // complete: if invoked from the main thread, the main method not 88 // complete: if invoked from the main thread, the main method not
94 // returning (and thus unblocking the main thread) means that the 89 // returning (and thus unblocking the main thread) means that the
95 // main-thread continuation methods will never get called, and thus 90 // main-thread continuation methods will never get called, and thus
96 // we'd get a deadlock. 91 // we'd get a deadlock.
97 class PluginReverseInterface: public nacl::ReverseInterface { 92 class PluginReverseInterface: public nacl::ReverseInterface {
98 public: 93 public:
(...skipping 19 matching lines...) Expand all
118 virtual void ReportCrash(); 113 virtual void ReportCrash();
119 114
120 virtual void ReportExitStatus(int exit_status); 115 virtual void ReportExitStatus(int exit_status);
121 116
122 // TODO(teravest): Remove this method once it's gone from 117 // TODO(teravest): Remove this method once it's gone from
123 // nacl::ReverseInterface. 118 // nacl::ReverseInterface.
124 virtual int64_t RequestQuotaForWrite(nacl::string file_id, 119 virtual int64_t RequestQuotaForWrite(nacl::string file_id,
125 int64_t offset, 120 int64_t offset,
126 int64_t bytes_to_write); 121 int64_t bytes_to_write);
127 122
128 // This is a sibling of OpenManifestEntry. While OpenManifestEntry is
129 // a sync function and must be called on a non-main thread,
130 // OpenManifestEntryAsync must be called on the main thread. Upon completion
131 // (even on error), callback will be invoked. The caller has responsibility
132 // to keep the memory passed to info until callback is invoked.
133 void OpenManifestEntryAsync(const nacl::string& key,
134 struct NaClFileInfo* info,
135 OpenManifestEntryAsyncCallback* callback);
136
137 protected: 123 protected:
138 virtual void OpenManifestEntry_MainThreadContinuation( 124 virtual void OpenManifestEntry_MainThreadContinuation(
139 OpenManifestEntryResource* p, 125 OpenManifestEntryResource* p,
140 int32_t err); 126 int32_t err);
141 127
142 virtual void StreamAsFile_MainThreadContinuation( 128 virtual void StreamAsFile_MainThreadContinuation(
143 OpenManifestEntryResource* p, 129 OpenManifestEntryResource* p,
144 int32_t result); 130 int32_t result);
145 131
146 private: 132 private:
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 // Mutex and CondVar to protect start_sel_ldr_done_ and nexe_started_. 230 // Mutex and CondVar to protect start_sel_ldr_done_ and nexe_started_.
245 NaClMutex mu_; 231 NaClMutex mu_;
246 NaClCondVar cond_; 232 NaClCondVar cond_;
247 bool start_sel_ldr_done_; 233 bool start_sel_ldr_done_;
248 bool nexe_started_; 234 bool nexe_started_;
249 }; 235 };
250 236
251 } // namespace plugin 237 } // namespace plugin
252 238
253 #endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_SERVICE_RUNTIME_H_ 239 #endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_SERVICE_RUNTIME_H_
OLDNEW
« no previous file with comments | « ppapi/c/private/ppb_nacl_private.h ('k') | ppapi/native_client/src/trusted/plugin/service_runtime.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698