| 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 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 70 // Complete when RunTranslate is invoked. | 70 // Complete when RunTranslate is invoked. |
| 71 // START_LD_AND_LLC_SUBPROCESS_AND_INITIATE_TRANSLATION | 71 // START_LD_AND_LLC_SUBPROCESS_AND_INITIATE_TRANSLATION |
| 72 // Complete when RunTranslate returns. | 72 // Complete when RunTranslate returns. |
| 73 // TRANSLATION_COMPLETE | 73 // TRANSLATION_COMPLETE |
| 74 // Complete when TranslateFinished is invoked. | 74 // Complete when TranslateFinished is invoked. |
| 75 // | 75 // |
| 76 // OPEN_NEXE_FOR_SEL_LDR | 76 // OPEN_NEXE_FOR_SEL_LDR |
| 77 // Complete when NexeReadDidOpen is invoked. | 77 // Complete when NexeReadDidOpen is invoked. |
| 78 class PnaclCoordinator: public CallbackSource<FileStreamData> { | 78 class PnaclCoordinator: public CallbackSource<FileStreamData> { |
| 79 public: | 79 public: |
| 80 // Maximum number of object files passable to the translator. Cannot be |
| 81 // changed without changing the RPC signatures. |
| 82 const static size_t kMaxTranslatorObjectFiles = 16; |
| 80 virtual ~PnaclCoordinator(); | 83 virtual ~PnaclCoordinator(); |
| 81 | 84 |
| 82 // The factory method for translations. | 85 // The factory method for translations. |
| 83 static PnaclCoordinator* BitcodeToNative( | 86 static PnaclCoordinator* BitcodeToNative( |
| 84 Plugin* plugin, | 87 Plugin* plugin, |
| 85 const nacl::string& pexe_url, | 88 const nacl::string& pexe_url, |
| 86 const PnaclOptions& pnacl_options, | 89 const PnaclOptions& pnacl_options, |
| 87 const pp::CompletionCallback& translate_notify_callback); | 90 const pp::CompletionCallback& translate_notify_callback); |
| 88 | 91 |
| 89 // Call this to take ownership of the FD of the translated nexe after | 92 // Call this to take ownership of the FD of the translated nexe after |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 195 nacl::scoped_ptr<const Manifest> manifest_; | 198 nacl::scoped_ptr<const Manifest> manifest_; |
| 196 // An auxiliary class that manages downloaded resources (llc and ld nexes). | 199 // An auxiliary class that manages downloaded resources (llc and ld nexes). |
| 197 nacl::scoped_ptr<PnaclResources> resources_; | 200 nacl::scoped_ptr<PnaclResources> resources_; |
| 198 | 201 |
| 199 // The URL for the pexe file. | 202 // The URL for the pexe file. |
| 200 nacl::string pexe_url_; | 203 nacl::string pexe_url_; |
| 201 // Options for translation. | 204 // Options for translation. |
| 202 PnaclOptions pnacl_options_; | 205 PnaclOptions pnacl_options_; |
| 203 | 206 |
| 204 // Object file, produced by the translator and consumed by the linker. | 207 // Object file, produced by the translator and consumed by the linker. |
| 205 nacl::scoped_ptr<TempFile> obj_file_; | 208 std::vector<TempFile*> obj_files_; |
| 209 // Number of split modules (threads) for llc |
| 210 int split_module_count_; |
| 211 int num_object_files_opened_; |
| 212 |
| 206 // Translated nexe file, produced by the linker. | 213 // Translated nexe file, produced by the linker. |
| 207 nacl::scoped_ptr<TempFile> temp_nexe_file_; | 214 nacl::scoped_ptr<TempFile> temp_nexe_file_; |
| 208 // Passed to the browser, which sets it to true if there is a translation | 215 // Passed to the browser, which sets it to true if there is a translation |
| 209 // cache hit. | 216 // cache hit. |
| 210 PP_Bool is_cache_hit_; | 217 PP_Bool is_cache_hit_; |
| 211 | 218 |
| 212 // Downloader for streaming translation | 219 // Downloader for streaming translation |
| 213 nacl::scoped_ptr<FileDownloader> streaming_downloader_; | 220 nacl::scoped_ptr<FileDownloader> streaming_downloader_; |
| 214 | 221 |
| 215 // Used to report information when errors (PPAPI or otherwise) are reported. | 222 // Used to report information when errors (PPAPI or otherwise) are reported. |
| (...skipping 12 matching lines...) Expand all Loading... |
| 228 // The helper thread used to do translations via SRPC. | 235 // The helper thread used to do translations via SRPC. |
| 229 // Keep this last in declaration order to ensure the other variables | 236 // Keep this last in declaration order to ensure the other variables |
| 230 // haven't been destroyed yet when its destructor runs. | 237 // haven't been destroyed yet when its destructor runs. |
| 231 nacl::scoped_ptr<PnaclTranslateThread> translate_thread_; | 238 nacl::scoped_ptr<PnaclTranslateThread> translate_thread_; |
| 232 }; | 239 }; |
| 233 | 240 |
| 234 //---------------------------------------------------------------------- | 241 //---------------------------------------------------------------------- |
| 235 | 242 |
| 236 } // namespace plugin; | 243 } // namespace plugin; |
| 237 #endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PNACL_COORDINATOR_H_ | 244 #endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PNACL_COORDINATOR_H_ |
| OLD | NEW |