Index: content/browser/renderer_host/pepper/pepper_udp_socket_private_shared.h |
diff --git a/content/browser/renderer_host/pepper/pepper_udp_socket.h b/content/browser/renderer_host/pepper/pepper_udp_socket_private_shared.h |
similarity index 55% |
copy from content/browser/renderer_host/pepper/pepper_udp_socket.h |
copy to content/browser/renderer_host/pepper/pepper_udp_socket_private_shared.h |
index ceb4aede0f4c4426a47da5bb52132f26323acdae..8c75b866a2cf93c5a427a20114dc9eba28f0d5fe 100644 |
--- a/content/browser/renderer_host/pepper/pepper_udp_socket.h |
+++ b/content/browser/renderer_host/pepper/pepper_udp_socket_private_shared.h |
@@ -2,14 +2,15 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#ifndef CONTENT_BROWSER_RENDERER_HOST_PEPPER_PEPPER_UDP_SOCKET_H_ |
-#define CONTENT_BROWSER_RENDERER_HOST_PEPPER_PEPPER_UDP_SOCKET_H_ |
+#ifndef CONTENT_BROWSER_RENDERER_HOST_PEPPER_PEPPER_UDP_SOCKET_PRIVATE_SHARED_H |
+#define CONTENT_BROWSER_RENDERER_HOST_PEPPER_PEPPER_UDP_SOCKET_PRIVATE_SHARED_H_ |
#include <string> |
#include "base/basictypes.h" |
#include "base/memory/ref_counted.h" |
#include "base/memory/scoped_ptr.h" |
+#include "base/memory/weak_ptr.h" |
#include "net/base/completion_callback.h" |
#include "net/base/ip_endpoint.h" |
#include "ppapi/c/pp_stdint.h" |
@@ -22,43 +23,44 @@ class UDPServerSocket; |
} |
namespace content { |
-class PepperMessageFilter; |
// PepperUDPSocket is used by PepperMessageFilter to handle requests from |
// the Pepper UDP socket API (PPB_UDPSocket_Private). |
-class PepperUDPSocket { |
+class PepperUDPSocketPrivateShared { |
public: |
- PepperUDPSocket(PepperMessageFilter* manager, |
- int32 routing_id, |
- uint32 plugin_dispatcher_id, |
- uint32 socket_id); |
- ~PepperUDPSocket(); |
+ PepperUDPSocketPrivateShared(); |
+ virtual ~PepperUDPSocketPrivateShared(); |
- int routing_id() { return routing_id_; } |
- |
- void AllowAddressReuse(bool value); |
- void AllowBroadcast(bool value); |
+ void SetBoolSocketFeature(int32_t name, bool value); |
void Bind(const PP_NetAddress_Private& addr); |
void RecvFrom(int32_t num_bytes); |
void SendTo(const std::string& data, const PP_NetAddress_Private& addr); |
- void SendBindACKError(); |
- void SendSendToACKError(); |
+ void Close(); |
- private: |
- void SendRecvFromACKError(); |
+ void SendBindError(); |
+ void SendRecvFromError(); |
+ void SendSendToError(); |
+ |
+ protected: |
+ virtual void SendBindReply(bool succeeded, |
+ const PP_NetAddress_Private& addr) = 0; |
+ virtual void SendRecvFromReply(bool succeeded, |
+ const std::string& data, |
+ const PP_NetAddress_Private& addr) = 0; |
+ virtual void SendSendToReply(bool succeeded, int32_t bytes_written) = 0; |
+ private: |
void OnBindCompleted(int result); |
void OnRecvFromCompleted(int result); |
void OnSendToCompleted(int result); |
- PepperMessageFilter* manager_; |
- int32 routing_id_; |
- uint32 plugin_dispatcher_id_; |
- uint32 socket_id_; |
+ bool closed() { return closed_; } |
+ |
bool allow_address_reuse_; |
bool allow_broadcast_; |
scoped_ptr<net::UDPServerSocket> socket_; |
+ bool closed_; |
scoped_refptr<net::IOBuffer> recvfrom_buffer_; |
scoped_refptr<net::IOBuffer> sendto_buffer_; |
@@ -66,9 +68,11 @@ class PepperUDPSocket { |
net::IPEndPoint recvfrom_address_; |
net::IPEndPoint bound_address_; |
- DISALLOW_COPY_AND_ASSIGN(PepperUDPSocket); |
+ base::WeakPtrFactory<PepperUDPSocketPrivateShared> weak_factory_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(PepperUDPSocketPrivateShared); |
}; |
} // namespace content |
-#endif // CONTENT_BROWSER_RENDERER_HOST_PEPPER_PEPPER_UDP_SOCKET_H_ |
+#endif // CONTENT_BROWSER_RENDERER_HOST_PEPPER_PEPPER_UDP_SOCKET_PRIVATE_SHARED_H_ |