Index: ppapi/proxy/resource_message_test_sink.cc |
diff --git a/ppapi/proxy/resource_message_test_sink.cc b/ppapi/proxy/resource_message_test_sink.cc |
index 75a47396c67f405d6bdbc666fd0e069d4bfeca70..7f45faea65f3036275cd8d56a288ac4b7ffe330f 100644 |
--- a/ppapi/proxy/resource_message_test_sink.cc |
+++ b/ppapi/proxy/resource_message_test_sink.cc |
@@ -15,15 +15,11 @@ namespace { |
// Backend for GetFirstResource[Call|Reply]Matching. |
template<class WrapperMessage, class Params> |
-int GetNextResourceMessageMatching(const ResourceMessageTestSink& sink, |
- uint32 id, |
- int start_index, |
- Params* params, |
- IPC::Message* nested_msg) { |
- if (start_index < 0) |
- return -1; |
- int message_count = static_cast<int>(sink.message_count()); |
- for (int i = start_index; i < message_count; i++) { |
+bool GetFirstResourceMessageMatching(const ResourceMessageTestSink& sink, |
+ uint32 id, |
+ Params* params, |
+ IPC::Message* nested_msg) { |
+ for (size_t i = 0; i < sink.message_count(); i++) { |
const IPC::Message* msg = sink.GetMessageAt(i); |
if (msg->type() == WrapperMessage::ID) { |
Params cur_params; |
@@ -32,18 +28,36 @@ int GetNextResourceMessageMatching(const ResourceMessageTestSink& sink, |
if (cur_msg.type() == id) { |
*params = cur_params; |
*nested_msg = cur_msg; |
- return i; |
+ return true; |
} |
} |
} |
- return -1; |
+ return false; |
+} |
+ |
+// Backend for GetAllResource[Calls|Replies]Matching. |
+template<class WrapperMessage, class Params> |
+std::vector<std::pair<Params, IPC::Message> > |
+GetAllResourceMessagesMatching(const ResourceMessageTestSink& sink, |
+ uint32 id) { |
+ std::vector<std::pair<Params, IPC::Message> > result; |
+ for (size_t i = 0; i < sink.message_count(); i++) { |
+ const IPC::Message* msg = sink.GetMessageAt(i); |
+ if (msg->type() == WrapperMessage::ID) { |
+ Params cur_params; |
+ IPC::Message cur_msg; |
+ WrapperMessage::Read(msg, &cur_params, &cur_msg); |
+ if (cur_msg.type() == id) { |
+ result.push_back(std::make_pair(cur_params, cur_msg)); |
+ } |
+ } |
+ } |
+ return result; |
} |
} // namespace |
-ResourceMessageTestSink::ResourceMessageTestSink() |
- : next_resource_call_(0), |
- next_resource_reply_(0) { |
+ResourceMessageTestSink::ResourceMessageTestSink() { |
} |
ResourceMessageTestSink::~ResourceMessageTestSink() { |
@@ -77,48 +91,30 @@ bool ResourceMessageTestSink::GetFirstResourceCallMatching( |
uint32 id, |
ResourceMessageCallParams* params, |
IPC::Message* nested_msg) const { |
- int index = GetNextResourceMessageMatching<PpapiHostMsg_ResourceCall, |
- ResourceMessageCallParams>( |
- *this, id, 0 /* start_index */, params, nested_msg); |
- return index >= 0; |
+ return GetFirstResourceMessageMatching<PpapiHostMsg_ResourceCall, |
+ ResourceMessageCallParams>( |
+ *this, id, params, nested_msg); |
} |
bool ResourceMessageTestSink::GetFirstResourceReplyMatching( |
uint32 id, |
ResourceMessageReplyParams* params, |
IPC::Message* nested_msg) { |
- int index = GetNextResourceMessageMatching<PpapiPluginMsg_ResourceReply, |
- ResourceMessageReplyParams>( |
- *this, id, 0 /* start_index */, params, nested_msg); |
- return index >= 0; |
+ return GetFirstResourceMessageMatching<PpapiPluginMsg_ResourceReply, |
+ ResourceMessageReplyParams>( |
+ *this, id, params, nested_msg); |
} |
-bool ResourceMessageTestSink::GetNextResourceCallMatching( |
- uint32 id, |
- ResourceMessageCallParams* params, |
- IPC::Message* nested_msg) { |
- int index = GetNextResourceMessageMatching<PpapiHostMsg_ResourceCall, |
- ResourceMessageCallParams>( |
- *this, id, next_resource_call_, params, nested_msg); |
- if (index >= 0) { |
- next_resource_call_ = index + 1; |
- return true; |
- } |
- return false; |
+ResourceMessageTestSink::ResourceCallVector |
+ResourceMessageTestSink::GetAllResourceCallsMatching(uint32 id) { |
+ return GetAllResourceMessagesMatching<PpapiHostMsg_ResourceCall, |
+ ResourceMessageCallParams>(*this, id); |
} |
-bool ResourceMessageTestSink::GetNextResourceReplyMatching( |
- uint32 id, |
- ResourceMessageReplyParams* params, |
- IPC::Message* nested_msg) { |
- int index = GetNextResourceMessageMatching<PpapiPluginMsg_ResourceReply, |
- ResourceMessageReplyParams>( |
- *this, id, next_resource_reply_, params, nested_msg); |
- if (index >= 0) { |
- next_resource_reply_ = index + 1; |
- return true; |
- } |
- return false; |
+ResourceMessageTestSink::ResourceReplyVector |
+ResourceMessageTestSink::GetAllResourceRepliesMatching(uint32 id) { |
+ return GetAllResourceMessagesMatching<PpapiPluginMsg_ResourceReply, |
+ ResourceMessageReplyParams>(*this, id); |
} |
ResourceSyncCallHandler::ResourceSyncCallHandler( |