Index: mojo/common/message_pump_mojo.h |
diff --git a/mojo/common/message_pump_mojo.h b/mojo/common/message_pump_mojo.h |
index 26e28b1067a20639bc5b9fc79f137da54d29b260..4dd715568800bf961a0a60cc9cecbd8cdb331f7f 100644 |
--- a/mojo/common/message_pump_mojo.h |
+++ b/mojo/common/message_pump_mojo.h |
@@ -10,6 +10,7 @@ |
#include "base/macros.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/message_loop/message_pump.h" |
+#include "base/observer_list.h" |
#include "base/synchronization/lock.h" |
#include "base/time/time.h" |
#include "mojo/common/mojo_common_export.h" |
@@ -23,6 +24,17 @@ class MessagePumpMojoHandler; |
// Mojo implementation of MessagePump. |
class MOJO_COMMON_EXPORT MessagePumpMojo : public base::MessagePump { |
public: |
+ class Observer { |
+ public: |
+ Observer() {} |
+ |
+ virtual void WillSignalHandler() = 0; |
+ virtual void DidSignalHandler() = 0; |
+ |
+ protected: |
+ virtual ~Observer() {} |
+ }; |
+ |
MessagePumpMojo(); |
virtual ~MessagePumpMojo(); |
@@ -45,6 +57,9 @@ class MOJO_COMMON_EXPORT MessagePumpMojo : public base::MessagePump { |
void RemoveHandler(const Handle& handle); |
+ void AddObserver(Observer*); |
+ void RemoveObserver(Observer*); |
+ |
// MessagePump: |
virtual void Run(Delegate* delegate) override; |
virtual void Quit() override; |
@@ -88,6 +103,9 @@ class MOJO_COMMON_EXPORT MessagePumpMojo : public base::MessagePump { |
// Returns the deadline for the call to MojoWaitMany(). |
MojoDeadline GetDeadlineForWait(const RunState& run_state) const; |
+ void WillSignalHandler(); |
+ void DidSignalHandler(); |
+ |
// If non-NULL we're running (inside Run()). Member is reference to value on |
// stack. |
RunState* run_state_; |
@@ -106,6 +124,8 @@ class MOJO_COMMON_EXPORT MessagePumpMojo : public base::MessagePump { |
// notify it. |
int next_handler_id_; |
+ ObserverList<Observer> observers_; |
+ |
DISALLOW_COPY_AND_ASSIGN(MessagePumpMojo); |
}; |