[email protected] | 90b721e6 | 2010-04-05 17:35:01 | [diff] [blame] | 1 | // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
[email protected] | a16ed65e | 2009-02-14 01:35:27 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
3 | // found in the LICENSE file. | ||||
4 | |||||
[email protected] | 82e5ee8 | 2009-04-03 02:29:45 | [diff] [blame] | 5 | #include "chrome/common/ipc_test_sink.h" |
[email protected] | a83d4229 | 2010-08-17 22:51:10 | [diff] [blame] | 6 | #include "ipc/ipc_message.h" |
[email protected] | a16ed65e | 2009-02-14 01:35:27 | [diff] [blame] | 7 | |
8 | namespace IPC { | ||||
9 | |||||
10 | TestSink::TestSink() { | ||||
11 | } | ||||
12 | |||||
13 | TestSink::~TestSink() { | ||||
14 | } | ||||
15 | |||||
[email protected] | 90b721e6 | 2010-04-05 17:35:01 | [diff] [blame] | 16 | bool TestSink::Send(IPC::Message* message) { |
17 | OnMessageReceived(*message); | ||||
18 | delete message; | ||||
19 | return true; | ||||
20 | } | ||||
21 | |||||
[email protected] | 2c9847a1 | 2010-12-24 08:16:46 | [diff] [blame^] | 22 | void TestSink::OnMessageReceived(const Message& msg) { |
[email protected] | 445623e6 | 2010-03-25 23:20:24 | [diff] [blame] | 23 | messages_.push_back(Message(msg)); |
[email protected] | a16ed65e | 2009-02-14 01:35:27 | [diff] [blame] | 24 | } |
25 | |||||
26 | void TestSink::ClearMessages() { | ||||
27 | messages_.clear(); | ||||
28 | } | ||||
29 | |||||
30 | const Message* TestSink::GetMessageAt(size_t index) const { | ||||
31 | if (index >= messages_.size()) | ||||
32 | return NULL; | ||||
33 | return &messages_[index]; | ||||
34 | } | ||||
35 | |||||
[email protected] | 168ae92 | 2009-12-04 18:08:45 | [diff] [blame] | 36 | const Message* TestSink::GetFirstMessageMatching(uint32 id) const { |
[email protected] | a16ed65e | 2009-02-14 01:35:27 | [diff] [blame] | 37 | for (size_t i = 0; i < messages_.size(); i++) { |
38 | if (messages_[i].type() == id) | ||||
39 | return &messages_[i]; | ||||
40 | } | ||||
41 | return NULL; | ||||
42 | } | ||||
43 | |||||
[email protected] | 168ae92 | 2009-12-04 18:08:45 | [diff] [blame] | 44 | const Message* TestSink::GetUniqueMessageMatching(uint32 id) const { |
[email protected] | a16ed65e | 2009-02-14 01:35:27 | [diff] [blame] | 45 | size_t found_index = 0; |
46 | size_t found_count = 0; | ||||
47 | for (size_t i = 0; i < messages_.size(); i++) { | ||||
48 | if (messages_[i].type() == id) { | ||||
49 | found_count++; | ||||
50 | found_index = i; | ||||
51 | } | ||||
52 | } | ||||
53 | if (found_count != 1) | ||||
54 | return NULL; // Didn't find a unique one. | ||||
55 | return &messages_[found_index]; | ||||
56 | } | ||||
57 | |||||
58 | } // namespace IPC |