| 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 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 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 static PnaclCoordinator* BitcodeToNative( | 62 static PnaclCoordinator* BitcodeToNative( |
| 63 Plugin* plugin, | 63 Plugin* plugin, |
| 64 const nacl::string& pexe_url, | 64 const nacl::string& pexe_url, |
| 65 const PP_PNaClOptions& pnacl_options, | 65 const PP_PNaClOptions& pnacl_options, |
| 66 const pp::CompletionCallback& translate_notify_callback); | 66 const pp::CompletionCallback& translate_notify_callback); |
| 67 | 67 |
| 68 // Call this to take ownership of the FD of the translated nexe after | 68 // Call this to take ownership of the FD of the translated nexe after |
| 69 // BitcodeToNative has completed (and the finish_callback called). | 69 // BitcodeToNative has completed (and the finish_callback called). |
| 70 PP_FileHandle TakeTranslatedFileHandle(); | 70 PP_FileHandle TakeTranslatedFileHandle(); |
| 71 | 71 |
| 72 // Run |translate_notify_callback_| with an error condition that is not | |
| 73 // PPAPI specific. Also set ErrorInfo report. | |
| 74 void ReportNonPpapiError(PP_NaClError err, const nacl::string& message); | |
| 75 // Run when faced with a PPAPI error condition. Bring control back to the | |
| 76 // plugin by invoking the |translate_notify_callback_|. | |
| 77 // Also set ErrorInfo report. | |
| 78 void ReportPpapiError(PP_NaClError err, | |
| 79 int32_t pp_error, const nacl::string& message); | |
| 80 // Bring control back to the plugin by invoking the | |
| 81 // |translate_notify_callback_|. This does not set the ErrorInfo report, | |
| 82 // it is assumed that it was already set. | |
| 83 void ExitWithError(); | |
| 84 | |
| 85 // Implement FileDownloader's template of the CallbackSource interface. | 72 // Implement FileDownloader's template of the CallbackSource interface. |
| 86 // This method returns a callback which will be called by the FileDownloader | 73 // This method returns a callback which will be called by the FileDownloader |
| 87 // to stream the bitcode data as it arrives. The callback | 74 // to stream the bitcode data as it arrives. The callback |
| 88 // (BitcodeStreamGotData) passes it to llc over SRPC. | 75 // (BitcodeStreamGotData) passes it to llc over SRPC. |
| 89 StreamCallback GetCallback(); | 76 StreamCallback GetCallback(); |
| 90 | 77 |
| 91 // Return a callback that should be notified when |bytes_compiled| bytes | 78 // Return a callback that should be notified when |bytes_compiled| bytes |
| 92 // have been compiled. | 79 // have been compiled. |
| 93 pp::CompletionCallback GetCompileProgressCallback(int64_t bytes_compiled); | 80 pp::CompletionCallback GetCompileProgressCallback(int64_t bytes_compiled); |
| 94 | 81 |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 // Invoked when translation is finished. | 138 // Invoked when translation is finished. |
| 152 void TranslateFinished(int32_t pp_error); | 139 void TranslateFinished(int32_t pp_error); |
| 153 | 140 |
| 154 // Invoked when the read descriptor for nexe_file_ is created. | 141 // Invoked when the read descriptor for nexe_file_ is created. |
| 155 void NexeReadDidOpen(int32_t pp_error); | 142 void NexeReadDidOpen(int32_t pp_error); |
| 156 | 143 |
| 157 // Invoked when a UMA timing measurement from the translate thread is ready. | 144 // Invoked when a UMA timing measurement from the translate thread is ready. |
| 158 void DoUMATimeMeasure( | 145 void DoUMATimeMeasure( |
| 159 int32_t pp_error, const nacl::string& event_name, int64_t microsecs); | 146 int32_t pp_error, const nacl::string& event_name, int64_t microsecs); |
| 160 | 147 |
| 148 // Bring control back to the plugin by invoking the |
| 149 // |translate_notify_callback_|. This does not set the ErrorInfo report, |
| 150 // it is assumed that it was already set. |
| 151 void ExitWithError(); |
| 152 // Run |translate_notify_callback_| with an error condition that is not |
| 153 // PPAPI specific. Also set ErrorInfo report. |
| 154 void ReportNonPpapiError(PP_NaClError err, const nacl::string& message); |
| 155 // Run when faced with a PPAPI error condition. Bring control back to the |
| 156 // plugin by invoking the |translate_notify_callback_|. |
| 157 // Also set ErrorInfo report. |
| 158 void ReportPpapiError(PP_NaClError err, |
| 159 int32_t pp_error, const nacl::string& message); |
| 160 |
| 161 |
| 161 // Keeps track of the pp_error upon entry to TranslateFinished, | 162 // Keeps track of the pp_error upon entry to TranslateFinished, |
| 162 // for inspection after cleanup. | 163 // for inspection after cleanup. |
| 163 int32_t translate_finish_error_; | 164 int32_t translate_finish_error_; |
| 164 | 165 |
| 165 // The plugin owning the nexe for which we are doing translation. | 166 // The plugin owning the nexe for which we are doing translation. |
| 166 Plugin* plugin_; | 167 Plugin* plugin_; |
| 167 | 168 |
| 168 pp::CompletionCallback translate_notify_callback_; | 169 pp::CompletionCallback translate_notify_callback_; |
| 169 // Set to true when the translation (if applicable) is finished and the nexe | 170 // Set to true when the translation (if applicable) is finished and the nexe |
| 170 // file is loaded, (or when there was an error), and the browser has been | 171 // file is loaded, (or when there was an error), and the browser has been |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 220 // The helper thread used to do translations via SRPC. | 221 // The helper thread used to do translations via SRPC. |
| 221 // It accesses fields of PnaclCoordinator so it must have a | 222 // It accesses fields of PnaclCoordinator so it must have a |
| 222 // shorter lifetime. | 223 // shorter lifetime. |
| 223 nacl::scoped_ptr<PnaclTranslateThread> translate_thread_; | 224 nacl::scoped_ptr<PnaclTranslateThread> translate_thread_; |
| 224 }; | 225 }; |
| 225 | 226 |
| 226 //---------------------------------------------------------------------- | 227 //---------------------------------------------------------------------- |
| 227 | 228 |
| 228 } // namespace plugin; | 229 } // namespace plugin; |
| 229 #endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PNACL_COORDINATOR_H_ | 230 #endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PNACL_COORDINATOR_H_ |
| OLD | NEW |