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

Unified Diff: webrtc/base/asyncinvoker-inl.h

Issue 2871403003: Delete unused features of AsyncInvoke. (Closed)
Patch Set: Rebased. Created 3 years, 7 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: webrtc/base/asyncinvoker-inl.h
diff --git a/webrtc/base/asyncinvoker-inl.h b/webrtc/base/asyncinvoker-inl.h
index 93e7671a9531034e34727a08df593543fbdebbfb..5f7cd4959a07e695ee9d526b31f641240aa33862 100644
--- a/webrtc/base/asyncinvoker-inl.h
+++ b/webrtc/base/asyncinvoker-inl.h
@@ -13,7 +13,6 @@
#include "webrtc/base/atomicops.h"
#include "webrtc/base/bind.h"
-#include "webrtc/base/callback.h"
#include "webrtc/base/criticalsection.h"
#include "webrtc/base/messagehandler.h"
#include "webrtc/base/sigslot.h"
@@ -52,93 +51,6 @@ class FireAndForgetAsyncClosure : public AsyncClosure {
FunctorT functor_;
};
-// Base class for closures that may trigger a callback for the calling thread.
-// Listens for the "destroyed" signals from the calling thread and the invoker,
-// and cancels the callback to the calling thread if either is destroyed.
-class NotifyingAsyncClosureBase : public AsyncClosure,
- public sigslot::has_slots<> {
- public:
- ~NotifyingAsyncClosureBase() override;
-
- protected:
- NotifyingAsyncClosureBase(AsyncInvoker* invoker,
- const Location& callback_posted_from,
- Thread* calling_thread);
- void TriggerCallback();
- void SetCallback(const Callback0<void>& callback) {
- CritScope cs(&crit_);
- callback_ = callback;
- }
- bool CallbackCanceled() const {
- CritScope cs(&crit_);
- return calling_thread_ == nullptr;
- }
-
- private:
- Location callback_posted_from_;
- CriticalSection crit_;
- Callback0<void> callback_ GUARDED_BY(crit_);
- Thread* calling_thread_ GUARDED_BY(crit_);
-
- void CancelCallback();
-};
-
-// Closures that have a non-void return value and require a callback.
-template <class ReturnT, class FunctorT, class HostT>
-class NotifyingAsyncClosure : public NotifyingAsyncClosureBase {
- public:
- NotifyingAsyncClosure(AsyncInvoker* invoker,
- const Location& callback_posted_from,
- Thread* calling_thread,
- const FunctorT& functor,
- void (HostT::*callback)(ReturnT),
- HostT* callback_host)
- : NotifyingAsyncClosureBase(invoker,
- callback_posted_from,
- calling_thread),
- functor_(functor),
- callback_(callback),
- callback_host_(callback_host) {}
- virtual void Execute() {
- ReturnT result = functor_();
- if (!CallbackCanceled()) {
- SetCallback(Callback0<void>(Bind(callback_, callback_host_, result)));
- TriggerCallback();
- }
- }
-
- private:
- FunctorT functor_;
- void (HostT::*callback_)(ReturnT);
- HostT* callback_host_;
-};
-
-// Closures that have a void return value and require a callback.
-template <class FunctorT, class HostT>
-class NotifyingAsyncClosure<void, FunctorT, HostT>
- : public NotifyingAsyncClosureBase {
- public:
- NotifyingAsyncClosure(AsyncInvoker* invoker,
- const Location& callback_posted_from,
- Thread* calling_thread,
- const FunctorT& functor,
- void (HostT::*callback)(),
- HostT* callback_host)
- : NotifyingAsyncClosureBase(invoker,
- callback_posted_from,
- calling_thread),
- functor_(functor) {
- SetCallback(Callback0<void>(Bind(callback, callback_host)));
- }
- virtual void Execute() {
- functor_();
- TriggerCallback();
- }
-
- private:
- FunctorT functor_;
-};
-
} // namespace rtc
#endif // WEBRTC_BASE_ASYNCINVOKER_INL_H_

Powered by Google App Engine
This is Rietveld 408576698