[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] | 6db8d990 | 2010-12-24 08:36:25 | [diff] [blame^] | 22 | bool TestSink::OnMessageReceived(const Message& msg) { |
[email protected] | 445623e6 | 2010-03-25 23:20:24 | [diff] [blame] | 23 | messages_.push_back(Message(msg)); |
[email protected] | 6db8d990 | 2010-12-24 08:36:25 | [diff] [blame^] | 24 | return true; |
[email protected] | a16ed65e | 2009-02-14 01:35:27 | [diff] [blame] | 25 | } |
26 | |||||
27 | void TestSink::ClearMessages() { | ||||
28 | messages_.clear(); | ||||
29 | } | ||||
30 | |||||
31 | const Message* TestSink::GetMessageAt(size_t index) const { | ||||
32 | if (index >= messages_.size()) | ||||
33 | return NULL; | ||||
34 | return &messages_[index]; | ||||
35 | } | ||||
36 | |||||
[email protected] | 168ae92 | 2009-12-04 18:08:45 | [diff] [blame] | 37 | const Message* TestSink::GetFirstMessageMatching(uint32 id) const { |
[email protected] | a16ed65e | 2009-02-14 01:35:27 | [diff] [blame] | 38 | for (size_t i = 0; i < messages_.size(); i++) { |
39 | if (messages_[i].type() == id) | ||||
40 | return &messages_[i]; | ||||
41 | } | ||||
42 | return NULL; | ||||
43 | } | ||||
44 | |||||
[email protected] | 168ae92 | 2009-12-04 18:08:45 | [diff] [blame] | 45 | const Message* TestSink::GetUniqueMessageMatching(uint32 id) const { |
[email protected] | a16ed65e | 2009-02-14 01:35:27 | [diff] [blame] | 46 | size_t found_index = 0; |
47 | size_t found_count = 0; | ||||
48 | for (size_t i = 0; i < messages_.size(); i++) { | ||||
49 | if (messages_[i].type() == id) { | ||||
50 | found_count++; | ||||
51 | found_index = i; | ||||
52 | } | ||||
53 | } | ||||
54 | if (found_count != 1) | ||||
55 | return NULL; // Didn't find a unique one. | ||||
56 | return &messages_[found_index]; | ||||
57 | } | ||||
58 | |||||
59 | } // namespace IPC |