Chromium Code Reviews| Index: content/browser/renderer_host/pepper/pepper_udp_socket_message_filter.h |
| diff --git a/content/browser/renderer_host/pepper/pepper_udp_socket_message_filter.h b/content/browser/renderer_host/pepper/pepper_udp_socket_message_filter.h |
| index c28e75abb26e2d52ab630c7c3aa7559f3dd18930..dd6792c1dfe614780004b5eb6c3331ac63baec91 100644 |
| --- a/content/browser/renderer_host/pepper/pepper_udp_socket_message_filter.h |
| +++ b/content/browser/renderer_host/pepper/pepper_udp_socket_message_filter.h |
| @@ -5,6 +5,7 @@ |
| #ifndef CONTENT_BROWSER_RENDERER_HOST_PEPPER_PEPPER_UDP_SOCKET_MESSAGE_FILTER_H_ |
| #define CONTENT_BROWSER_RENDERER_HOST_PEPPER_PEPPER_UDP_SOCKET_MESSAGE_FILTER_H_ |
| +#include <queue> |
| #include <string> |
| #include "base/basictypes.h" |
| @@ -56,6 +57,18 @@ class CONTENT_EXPORT PepperUDPSocketMessageFilter |
| virtual ~PepperUDPSocketMessageFilter(); |
| private: |
| + struct PendingSend { |
| + PendingSend(const net::IPAddressNumber& address, |
| + int port, |
| + const scoped_refptr<net::IOBufferWithSize>& buffer, |
| + const ppapi::host::ReplyMessageContext& context); |
| + ~PendingSend(); |
| + |
| + net::IPAddressNumber address; |
| + int port; |
| + scoped_refptr<net::IOBufferWithSize> buffer; |
| + ppapi::host::ReplyMessageContext context; |
| + }; |
| // ppapi::host::ResourceMessageFilter overrides. |
| virtual scoped_refptr<base::TaskRunner> OverrideTaskRunnerForMessage( |
| const IPC::Message& message) OVERRIDE; |
| @@ -81,10 +94,15 @@ class CONTENT_EXPORT PepperUDPSocketMessageFilter |
| void DoSendTo(const ppapi::host::ReplyMessageContext& context, |
| const std::string& data, |
| const PP_NetAddress_Private& addr); |
| + void CallSendTo(const net::IPAddressNumber& address, |
|
yzshen1
2014/10/08 18:05:38
nit: the two names (DoSendTo and CallSendTo) are t
bbudge
2014/10/08 21:44:35
Changed to DoPendingSend.
dmichael (off chromium)
2014/10/08 22:42:40
suggestion: FlushPendingSends?
|
| + int port, |
| + const scoped_refptr<net::IOBufferWithSize>& buffer, |
| + const ppapi::host::ReplyMessageContext& context); |
| void Close(); |
| void OnRecvFromCompleted(int net_result); |
| - void OnSendToCompleted(const ppapi::host::ReplyMessageContext& context, |
| + void OnSendToCompleted(scoped_refptr<net::IOBufferWithSize> buffer, |
| + const ppapi::host::ReplyMessageContext& context, |
| int net_result); |
| void SendBindReply(const ppapi::host::ReplyMessageContext& context, |
| @@ -110,12 +128,15 @@ class CONTENT_EXPORT PepperUDPSocketMessageFilter |
| bool closed_; |
| scoped_refptr<net::IOBuffer> recvfrom_buffer_; |
| - scoped_refptr<net::IOBufferWithSize> sendto_buffer_; |
| + |
| + std::queue<PendingSend> pending_sends_; |
| net::IPEndPoint recvfrom_address_; |
| size_t remaining_recv_slots_; |
| + bool socket_busy_; |
|
yzshen1
2014/10/08 18:05:38
It is not obvious what it means. (reading or writi
bbudge
2014/10/08 21:44:35
Renamed send_in_progress_
dmichael (off chromium)
2014/10/08 22:42:40
Maybe you can eliminate this and rely on !pending_
|
| + |
| bool external_plugin_; |
| bool private_api_; |