Index: ipc/ipc_test_sink.cc |
diff --git a/ipc/ipc_test_sink.cc b/ipc/ipc_test_sink.cc |
index 95900b6ca5074a164b45491431ffc7e86e5e9b66..d280ca2b127e5867632050541d93b47e95763d5b 100644 |
--- a/ipc/ipc_test_sink.cc |
+++ b/ipc/ipc_test_sink.cc |
@@ -21,6 +21,13 @@ bool TestSink::Send(Message* message) { |
} |
bool TestSink::OnMessageReceived(const Message& msg) { |
+ ObserverListBase<Channel::Listener>::Iterator it(filter_list_); |
+ Channel::Listener* observer; |
+ while ((observer = it.GetNext()) != NULL) |
brettw
2011/01/28 21:12:32
This outer while() needs {} since it contains > 1
Brian Ryner
2011/01/28 22:04:23
Done.
|
+ if (observer->OnMessageReceived(msg)) |
+ return true; |
+ |
+ // No filter handled the message, so store it. |
messages_.push_back(Message(msg)); |
return true; |
} |
@@ -57,4 +64,12 @@ const Message* TestSink::GetUniqueMessageMatching(uint32 id) const { |
return &messages_[found_index]; |
} |
+void TestSink::AddFilter(Channel::Listener* filter) { |
+ filter_list_.AddObserver(filter); |
+} |
+ |
+void TestSink::RemoveFilter(Channel::Listener* filter) { |
+ filter_list_.RemoveObserver(filter); |
+} |
+ |
} // namespace IPC |