Index: ipc/ipc_test_channel_listener.h |
diff --git a/ipc/ipc_test_channel_listener.h b/ipc/ipc_test_channel_listener.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..047e15d08885e25ed33fcb55ccd7d0a6e133b693 |
--- /dev/null |
+++ b/ipc/ipc_test_channel_listener.h |
@@ -0,0 +1,44 @@ |
+// Copyright 2014 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. |
+ |
+#ifndef IPC_IPC_TEST_CHANNEL_LISTENER_H_ |
+#define IPC_IPC_TEST_CHANNEL_LISTENER_H_ |
+ |
+#include "ipc/ipc_listener.h" |
+ |
+namespace IPC { |
+ |
+class Sender; |
+ |
+// A generic listener that expects messages of a certain type (see |
+// OnMessageReceived()), and either sends a generic response or quits after the |
+// 50th message (or on channel error). |
+class TestChannelListener : public Listener { |
+ public: |
+ static const size_t kLongMessageStringNumBytes = 50000; |
+ static void SendOneMessage(Sender* sender, const char* text); |
+ |
+ TestChannelListener() : sender_(NULL), messages_left_(50) {} |
+ virtual ~TestChannelListener() {} |
+ |
+ virtual bool OnMessageReceived(const Message& message) OVERRIDE; |
+ virtual void OnChannelError() OVERRIDE; |
+ |
+ void Init(Sender* s) { |
+ sender_ = s; |
+ } |
+ |
+ bool HasSentAll() const { return 0 == messages_left_; } |
+ |
+ protected: |
+ void SendNextMessage(); |
+ |
+ private: |
+ Sender* sender_; |
+ int messages_left_; |
+}; |
+ |
+} |
+ |
+#endif // IPC_IPC_TEST_CHANNEL_LISTENER_H_ |