Index: ppapi/native_client/src/shared/ppapi_proxy/browser_upcall.h |
=================================================================== |
--- ppapi/native_client/src/shared/ppapi_proxy/browser_upcall.h (revision 0) |
+++ ppapi/native_client/src/shared/ppapi_proxy/browser_upcall.h (revision 0) |
@@ -0,0 +1,42 @@ |
+// Copyright (c) 2010 The Native Client Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+// |
+// WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING |
+// |
+// This is an early draft of background thread support. |
+// Until it is complete, we assume that all functions proxy functions |
+// (but CallOnMainThread) are called on the main thread. |
+// |
+// WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING |
+// |
+// Support for "upcalls" -- RPCs to the browser that are done from other than |
+// the PPAPI main thread. These calls are synchronized by the ppapi_proxy |
+// library at the plugin end. |
+ |
+#include "native_client/src/include/portability.h" |
+ |
+struct NaClSrpcChannel; |
+struct NaClThread; |
+ |
+namespace nacl { |
+class DescWrapper; |
+} // namespace nacl |
+ |
+namespace ppapi_proxy { |
+ |
+class BrowserUpcall { |
+ public: |
+ // If successful, creates the listener thread in the browser that will handle |
+ // upcalls and returns the plugin end of the upcall channel. The caller |
+ // takes ownership of this descriptor. If either thread or socket creation |
+ // fails, this method returns NULL. |
+ // The thread's state is maintained by nacl_thread. Upcall processing may |
+ // cause rpcs to be performed on main_channel (e.g., CallOnMainThread), |
+ // so the interface takes main_channel, but the upcall thread does not have |
+ // ownership. |
+ static nacl::DescWrapper* Start(NaClThread* nacl_thread, |
+ NaClSrpcChannel* main_channel); |
+}; |
+ |
+} // namespace ppapi_proxy |