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

Unified Diff: ppapi/native_client/src/trusted/weak_ref/call_on_main_thread.h

Issue 870923004: NaCl: Remove now-unneeded SRPC reverse service code (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Rebase Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: ppapi/native_client/src/trusted/weak_ref/call_on_main_thread.h
diff --git a/ppapi/native_client/src/trusted/weak_ref/call_on_main_thread.h b/ppapi/native_client/src/trusted/weak_ref/call_on_main_thread.h
deleted file mode 100644
index a618795742d0d672be6fc1b4c74825ce67144e4c..0000000000000000000000000000000000000000
--- a/ppapi/native_client/src/trusted/weak_ref/call_on_main_thread.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright (c) 2011 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-// EXAMPLE USAGE
-//
-// class PluginReverseInterface {
-// public:
-// PluginReverseInterface(...) : anchor_(new nacl::WeakRefAnchor);
-// ~PluginReverseInterface() { anchor_->Abandon(); }
-// void Log(nacl::string message) {
-// LogContinuation* continuation = new LogContinuation(message);
-// plugin::WeakRefCallOnMainThread(anchor_, 0 /* ms delay */,
-// this, &PluginReverseInterface::Log_cont,
-// continuation);
-// }
-// void Log_cont(LogContinuation* cont, int32_t result) {
-// plugin_->browser_interface()->AddToConsole(plugin_->instance_id(),
-// cont->message);
-// delete cont;
-// }
-// private:
-// nacl::WeakRefAnchor* anchor_;
-// }
-
-#ifndef NATIVE_CLIENT_SRC_TRUSTED_WEAK_REF_CALL_ON_MAIN_THREAD_H_
-#define NATIVE_CLIENT_SRC_TRUSTED_WEAK_REF_CALL_ON_MAIN_THREAD_H_
-
-#include "native_client/src/trusted/weak_ref/weak_ref.h"
-
-#include "native_client/src/include/nacl_scoped_ptr.h"
-#include "native_client/src/include/nacl_compiler_annotations.h"
-#include "native_client/src/include/portability.h"
-
-#include "ppapi/c/pp_errors.h" // for PP_OK
-#include "ppapi/cpp/completion_callback.h" // for pp::CompletionCallback
-#include "ppapi/cpp/core.h" // for pp::
-#include "ppapi/cpp/module.h" // for pp::Module
-
-namespace plugin {
-
-// A typesafe utility to schedule a completion callback using weak
-// references. The callback function callback_fn is invoked
-// regardless of whether the anchor has been abandoned, since
-// callback_fn takes a WeakRef<R>* as argument. The intention is that
-// such callbacks, even deprived of any of its arguments (which has
-// been deleted), may wish to do some cleanup / log a message.
-
-static char const* const kPpWeakRefModuleName = "pp_weak_ref";
-
-template <typename R> pp::CompletionCallback WeakRefNewCallback(
- nacl::WeakRefAnchor* anchor,
- void callback_fn(nacl::WeakRef<R>* weak_data, int32_t err),
- R* raw_data) {
- nacl::WeakRef<R>* wp = anchor->MakeWeakRef<R>(raw_data);
- // TODO(bsy): explore using another template to eliminate the
- // following cast, making things completely typesafe.
- pp::CompletionCallback cc_nrvo(
- reinterpret_cast<void (*)(void*, int32_t)>(
- callback_fn),
- reinterpret_cast<void*>(wp));
- return cc_nrvo;
-}
-
-template <typename R> void WeakRefCallOnMainThread(
- nacl::WeakRefAnchor* anchor,
- int32_t delay_in_milliseconds,
- void callback_fn(nacl::WeakRef<R>* weak_data, int32_t err),
- R* raw_data) {
- pp::CompletionCallback cc =
- WeakRefNewCallback(anchor, callback_fn, raw_data, &cc);
-
- pp::Module::Get()->core()->CallOnMainThread(
- delay_in_milliseconds,
- cc,
- PP_OK);
-}
-
-template <typename R> class WeakRefAutoAbandonWrapper {
- public:
- WeakRefAutoAbandonWrapper(void (*callback_fn)(R* raw_data,
- int32_t err),
- R* raw_data)
- : orig_callback_fn(callback_fn),
- orig_data(raw_data) {}
-
- void (*orig_callback_fn)(R* raw_data, int32_t err);
- nacl::scoped_ptr<R> orig_data;
-};
-
-/*
- * It would be nice if the function had the right type signature,
- * i.e., void WeakRefAutoAbandoner(void *wr_data, int32_t) but then
- * the formal argument list would not use the typename template
- * argument R, making template resolution impossible.
- */
-template <typename R> void WeakRefAutoAbandoner(
- nacl::WeakRef<WeakRefAutoAbandonWrapper<R> >* wr,
- int32_t err) {
- nacl::scoped_ptr<WeakRefAutoAbandonWrapper<R> > p;
- wr->ReleaseAndUnref(&p);
- if (p == NULL) {
- NaClLog2(kPpWeakRefModuleName, 4,
- "WeakRefAutoAbandoner: weak ref NULL, anchor was abandoned\n");
- return;
- }
- NaClLog2(kPpWeakRefModuleName, 4,
- "WeakRefAutoAbandoner: weak ref okay, invoking callback\n");
- (*p->orig_callback_fn)(p->orig_data.get(), err);
- return;
-}
-
-// A typesafe utility to schedule a completion callback using weak
-// references. The callback function raw_callback_fn takes an R* as
-// argument, and is not invoked if the anchor has been abandoned.
-template <typename R> pp::CompletionCallback WeakRefNewCallback(
- nacl::WeakRefAnchor* anchor,
- void (*raw_callback_fn)(R* raw_data, int32_t err),
- R* raw_data) {
-
- WeakRefAutoAbandonWrapper<R>* wref_auto_wrapper =
- new WeakRefAutoAbandonWrapper<R>(raw_callback_fn, raw_data);
-
- CHECK(wref_auto_wrapper != NULL);
-
- nacl::WeakRef<WeakRefAutoAbandonWrapper<R> >* wp =
- anchor->MakeWeakRef<WeakRefAutoAbandonWrapper<R> >(
- wref_auto_wrapper);
- void (*weak_ref_auto_abandoner_ptr)(
- nacl::WeakRef<WeakRefAutoAbandonWrapper<R> >* wr,
- int32_t err) = WeakRefAutoAbandoner<R>;
- // TODO(bsy): see above
- pp::CompletionCallback cc_nrvo(
- reinterpret_cast<void (*)(void*, int32_t)>(weak_ref_auto_abandoner_ptr),
- reinterpret_cast<void*>(wp));
- return cc_nrvo;
-}
-
-template <typename R> void WeakRefCallOnMainThread(
- nacl::WeakRefAnchor* anchor,
- int32_t delay_in_milliseconds,
- void raw_callback_fn(R* raw_data, int32_t err),
- R* raw_data) {
- pp::CompletionCallback cc =
- WeakRefNewCallback(anchor, raw_callback_fn, raw_data, &cc);
- pp::Module::Get()->core()->CallOnMainThread(
- delay_in_milliseconds,
- cc,
- PP_OK);
-}
-
-
-template <typename R, typename E>
-class WeakRefMemberFuncBinder {
- public:
- WeakRefMemberFuncBinder(E* object,
- void (E::*raw_callback_fn)(R* raw_data,
- int32_t err),
- R* raw_data)
- : object_(object),
- raw_callback_fn_(raw_callback_fn),
- data_(raw_data) {}
- void Invoke(int32_t err) {
- NaClLog2(kPpWeakRefModuleName, 4,
- ("WeakRefMemberFuncBinder: Invoke obj 0x%" NACL_PRIxPTR
- ", err%" NACL_PRId32 "\n"),
- reinterpret_cast<uintptr_t>(object_), err);
- (object_->*raw_callback_fn_)(data_.get(), err);
- NaClLog2(kPpWeakRefModuleName, 4,
- "WeakRefMemberFuncBinder: done\n");
- }
- private:
- E* object_;
- void (E::*raw_callback_fn_)(R* raw_data, int32_t err);
- nacl::scoped_ptr<R> data_;
-};
-
-template <typename R, typename E>
-void WeakRefMemberFuncInvoker(
- WeakRefMemberFuncBinder<R, E> *binder, int32_t err) {
- NaClLog2(kPpWeakRefModuleName, 4,
- "WeakRefMemberFuncInvoker: %" NACL_PRIxPTR " %" NACL_PRId32 "\n",
- (uintptr_t) binder,
- err);
- binder->Invoke(err);
- // delete binder not needed, since WeakRefAutoAbandoner holds binder
- // in a scoped_ptr and will automatically delete on scope exit.
-}
-
-
-// A typesafe utility to schedule a completion callback using weak
-// references, where the callback function is a member function. The
-// member function must take only a raw argument data pointer and a
-// completion status as formal parameters. The lifetime of the
-// |object| and |raw_callback_fn| must be at least that of |anchor|.
-// Typically |object| is just the object that controls the |anchor|,
-// though it may be some sub-object that is contained within the
-// actual controlling object. If the |anchor| is abandoned, the
-// |raw_data| argument is deleted and the |raw_callback_fn| will not
-// be invoked.
-template <typename R, typename E>
-pp::CompletionCallback WeakRefNewCallback(
- nacl::WeakRefAnchor* anchor,
- E* object,
- void (E::*raw_callback_fn)(R* raw_data, int32_t err),
- R* raw_data) {
- NaClLog2(kPpWeakRefModuleName, 4,
- "Entered WeakRefNewCallback\n");
- NaClLog2(kPpWeakRefModuleName, 4,
- "object 0x%" NACL_PRIxPTR "\n",
- reinterpret_cast<uintptr_t>(object));
- WeakRefMemberFuncBinder<R, E>* binder =
- new WeakRefMemberFuncBinder<R, E>(object,
- raw_callback_fn,
- raw_data);
- CHECK(binder != NULL);
- NaClLog2(kPpWeakRefModuleName, 4,
- "WeakRefNewCallback: binder %" NACL_PRIxPTR "\n",
- (uintptr_t) binder);
- void (*weak_ref_member_func_invoker_ptr)(
- WeakRefMemberFuncBinder<R, E>* binder,
- int32_t err) = WeakRefMemberFuncInvoker<R, E>;
- return WeakRefNewCallback(anchor, weak_ref_member_func_invoker_ptr,
- binder);
-}
-
-template <typename R, typename E> void WeakRefCallOnMainThread(
- nacl::WeakRefAnchor* anchor,
- int32_t delay_in_milliseconds,
- E* object,
- void (E::*raw_callback_fn)(R* raw_data, int32_t err),
- R* raw_data) {
- NaClLog2(kPpWeakRefModuleName, 4,
- "Entered WeakRefCallOnMainThread\n");
- pp::CompletionCallback cc =
- WeakRefNewCallback(anchor, object, raw_callback_fn, raw_data);
- NaClLog2(kPpWeakRefModuleName, 4,
- "WeakRefCallOnMainThread: got cc\n");
- pp::Module::Get()->core()->CallOnMainThread(
- delay_in_milliseconds,
- cc,
- PP_OK);
- NaClLog2(kPpWeakRefModuleName, 4,
- "WeakRefCallOnMainThread: invoked PP_CallOnMainThread\n");
-}
-
-} // namespace plugin
-
-#endif

Powered by Google App Engine
This is Rietveld 408576698