blob: 7daf43570794a76cf9adab620d2b31082d49929a [file] [log] [blame]
[email protected]077ecfd42012-06-21 21:46:261// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "ppapi/proxy/resource_message_test_sink.h"
6
7#include "ppapi/proxy/ppapi_messages.h"
8#include "ppapi/proxy/resource_message_params.h"
9
10namespace ppapi {
11namespace proxy {
12
13namespace {
14
15// Backend for GetFirstResource[Call|Reply]Matching.
16template<class WrapperMessage, class Params>
17bool GetFirstResourceMessageMatching(const ResourceMessageTestSink& sink,
18 uint32 id,
19 Params* params,
20 IPC::Message* nested_msg) {
21 for (size_t i = 0; i < sink.message_count(); i++) {
22 const IPC::Message* msg = sink.GetMessageAt(i);
23 if (msg->type() == WrapperMessage::ID) {
24 Params cur_params;
25 IPC::Message cur_msg;
26 WrapperMessage::Read(msg, &cur_params, &cur_msg);
27 if (cur_msg.type() == id) {
28 *params = cur_params;
29 *nested_msg = cur_msg;
30 return true;
31 }
32 }
33 }
34 return false;
35}
36
37} // namespace
38
39ResourceMessageTestSink::ResourceMessageTestSink() {
40}
41
42ResourceMessageTestSink::~ResourceMessageTestSink() {
43}
44
45bool ResourceMessageTestSink::GetFirstResourceCallMatching(
46 uint32 id,
47 ResourceMessageCallParams* params,
48 IPC::Message* nested_msg) const {
49 return GetFirstResourceMessageMatching<PpapiHostMsg_ResourceCall,
50 ResourceMessageCallParams>(
51 *this, id, params, nested_msg);
52}
53
54bool ResourceMessageTestSink::GetFirstResourceReplyMatching(
55 uint32 id,
56 ResourceMessageReplyParams* params,
57 IPC::Message* nested_msg) {
58 return GetFirstResourceMessageMatching<PpapiPluginMsg_ResourceReply,
59 ResourceMessageReplyParams>(
60 *this, id, params, nested_msg);
61}
62
63} // namespace proxy
64} // namespace ppapi