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

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

Issue 8525014: Get all the resources relative to a single base. Currently the same base (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 1 month 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 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PNACL_COORDINATOR_H_ 5 #ifndef NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PNACL_COORDINATOR_H_
6 #define NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PNACL_COORDINATOR_H_ 6 #define NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PNACL_COORDINATOR_H_
7 7
8 #include <set> 8 #include <set>
9 #include <map> 9 #include <map>
10 #include <vector> 10 #include <vector>
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 subprocesses_should_die_(false) { 83 subprocesses_should_die_(false) {
84 NaClXMutexCtor(&subprocess_mu_); 84 NaClXMutexCtor(&subprocess_mu_);
85 } 85 }
86 86
87 virtual ~PnaclCoordinator(); 87 virtual ~PnaclCoordinator();
88 88
89 // Initialize() can only be called once during the lifetime of this instance. 89 // Initialize() can only be called once during the lifetime of this instance.
90 void Initialize(Plugin* instance); 90 void Initialize(Plugin* instance);
91 91
92 void BitcodeToNative(const nacl::string& pexe_url, 92 void BitcodeToNative(const nacl::string& pexe_url,
93 const nacl::string& llc_url,
94 const nacl::string& ld_url,
95 const pp::CompletionCallback& finish_callback); 93 const pp::CompletionCallback& finish_callback);
96 94
97 // Call this to take ownership of the FD of the translated nexe after 95 // Call this to take ownership of the FD of the translated nexe after
98 // BitcodeToNative has completed (and the finish_callback called). 96 // BitcodeToNative has completed (and the finish_callback called).
99 nacl::DescWrapper* ReleaseTranslatedFD() { 97 nacl::DescWrapper* ReleaseTranslatedFD() {
100 return translated_fd_.release(); 98 return translated_fd_.release();
101 } 99 }
102 100
103 int32_t GetLoadedFileDesc(int32_t pp_error, 101 int32_t GetLoadedFileDesc(int32_t pp_error,
104 const nacl::string& url, 102 const nacl::string& url,
105 const nacl::string& component); 103 const nacl::string& component);
106 104
107 // Run when faced with a PPAPI error condition. It brings control back to the 105 // Run when faced with a PPAPI error condition. It brings control back to the
108 // plugin by invoking the |translate_notify_callback_|. 106 // plugin by invoking the |translate_notify_callback_|.
109 void PnaclPpapiError(int32_t pp_error); 107 void PnaclPpapiError(int32_t pp_error);
110 // Run |translate_notify_callback_| with an error condition that is not 108 // Run |translate_notify_callback_| with an error condition that is not
111 // PPAPI specific. 109 // PPAPI specific.
112 void PnaclNonPpapiError(); 110 void PnaclNonPpapiError();
113 // Wrapper for Plugin ReportLoadAbort. 111 // Wrapper for Plugin ReportLoadAbort.
114 void ReportLoadAbort(); 112 void ReportLoadAbort();
115 // Wrapper for Plugin ReportLoadError. 113 // Wrapper for Plugin ReportLoadError.
116 void ReportLoadError(const ErrorInfo& error); 114 void ReportLoadError(const ErrorInfo& error);
117 115
118
119
120 // Accessors for use by helper threads. 116 // Accessors for use by helper threads.
117 nacl::string resource_base_url() const { return resource_base_url_; }
121 Plugin* plugin() const { return plugin_; } 118 Plugin* plugin() const { return plugin_; }
122 nacl::string llc_url() const { return llc_url_; } 119 nacl::string llc_url() const { return llc_url_; }
123 NaClSubprocess* llc_subprocess() const { return llc_subprocess_; } 120 NaClSubprocess* llc_subprocess() const { return llc_subprocess_; }
124 bool StartLlcSubProcess(); 121 bool StartLlcSubProcess();
125 nacl::string ld_url() const { return ld_url_; } 122 nacl::string ld_url() const { return ld_url_; }
126 NaClSubprocess* ld_subprocess() const { return ld_subprocess_; } 123 NaClSubprocess* ld_subprocess() const { return ld_subprocess_; }
127 bool StartLdSubProcess(); 124 bool StartLdSubProcess();
128 bool SubprocessesShouldDie(); 125 bool SubprocessesShouldDie();
129 void SetSubprocessesShouldDie(bool subprocesses_should_die); 126 void SetSubprocessesShouldDie(bool subprocesses_should_die);
130 PnaclResources* resources() const { return resources_.get(); } 127 PnaclResources* resources() const { return resources_.get(); }
(...skipping 15 matching lines...) Expand all
146 void PnaclDidFinish(int32_t pp_error, PnaclTranslationUnit* translation_unit); 143 void PnaclDidFinish(int32_t pp_error, PnaclTranslationUnit* translation_unit);
147 144
148 private: 145 private:
149 NACL_DISALLOW_COPY_AND_ASSIGN(PnaclCoordinator); 146 NACL_DISALLOW_COPY_AND_ASSIGN(PnaclCoordinator);
150 147
151 Plugin* plugin_; 148 Plugin* plugin_;
152 pp::CompletionCallback translate_notify_callback_; 149 pp::CompletionCallback translate_notify_callback_;
153 pp::CompletionCallbackFactory<PnaclCoordinator> callback_factory_; 150 pp::CompletionCallbackFactory<PnaclCoordinator> callback_factory_;
154 151
155 // URLs used to lookup downloaded resources. 152 // URLs used to lookup downloaded resources.
153 nacl::string resource_base_url_;
156 nacl::string llc_url_; 154 nacl::string llc_url_;
157 nacl::string ld_url_; 155 nacl::string ld_url_;
158 156
159 // Helper subprocesses loaded by the plugin (deleted by the plugin). 157 // Helper subprocesses loaded by the plugin (deleted by the plugin).
160 // We may want to do cleanup ourselves when we are in the 158 // We may want to do cleanup ourselves when we are in the
161 // business of compiling multiple bitcode objects / libraries, and 159 // business of compiling multiple bitcode objects / libraries, and
162 // if we truly cannot reuse existing loaded subprocesses. 160 // if we truly cannot reuse existing loaded subprocesses.
163 NaClSubprocess* llc_subprocess_; 161 NaClSubprocess* llc_subprocess_;
164 NaClSubprocess* ld_subprocess_; 162 NaClSubprocess* ld_subprocess_;
165 bool subprocesses_should_die_; 163 bool subprocesses_should_die_;
(...skipping 10 matching lines...) Expand all
176 nacl::scoped_ptr<NaClThread> link_thread_; 174 nacl::scoped_ptr<NaClThread> link_thread_;
177 175
178 // An auxiliary class that manages downloaded resources. 176 // An auxiliary class that manages downloaded resources.
179 nacl::scoped_ptr<PnaclResources> resources_; 177 nacl::scoped_ptr<PnaclResources> resources_;
180 }; 178 };
181 179
182 //---------------------------------------------------------------------- 180 //----------------------------------------------------------------------
183 181
184 } // namespace plugin; 182 } // namespace plugin;
185 #endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PNACL_COORDINATOR_H_ 183 #endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PNACL_COORDINATOR_H_
OLDNEW
« no previous file with comments | « ppapi/native_client/src/trusted/plugin/plugin.cc ('k') | ppapi/native_client/src/trusted/plugin/pnacl_coordinator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698