Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(308)

Side by Side Diff: ppapi/proxy/ppb_flash_udp_socket_proxy.cc

Issue 8511032: Make the Pepper Flash net address just private, not Flash-specific. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ppapi/proxy/ppb_flash_udp_socket_proxy.h" 5 #include "ppapi/proxy/ppb_flash_udp_socket_proxy.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cstring> 8 #include <cstring>
9 #include <map> 9 #include <map>
10 10
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 class FlashUDPSocket : public PPB_Flash_UDPSocket_API, 52 class FlashUDPSocket : public PPB_Flash_UDPSocket_API,
53 public Resource { 53 public Resource {
54 public: 54 public:
55 FlashUDPSocket(const HostResource& resource, uint32 socket_id); 55 FlashUDPSocket(const HostResource& resource, uint32 socket_id);
56 virtual ~FlashUDPSocket(); 56 virtual ~FlashUDPSocket();
57 57
58 // ResourceObjectBase overrides. 58 // ResourceObjectBase overrides.
59 virtual PPB_Flash_UDPSocket_API* AsPPB_Flash_UDPSocket_API() OVERRIDE; 59 virtual PPB_Flash_UDPSocket_API* AsPPB_Flash_UDPSocket_API() OVERRIDE;
60 60
61 // PPB_Flash_UDPSocket_API implementation. 61 // PPB_Flash_UDPSocket_API implementation.
62 virtual int32_t Bind(const PP_Flash_NetAddress* addr, 62 virtual int32_t Bind(const PP_NetAddress_Private* addr,
63 PP_CompletionCallback callback) OVERRIDE; 63 PP_CompletionCallback callback) OVERRIDE;
64 virtual int32_t RecvFrom(char* buffer, 64 virtual int32_t RecvFrom(char* buffer,
65 int32_t num_bytes, 65 int32_t num_bytes,
66 PP_CompletionCallback callback) OVERRIDE; 66 PP_CompletionCallback callback) OVERRIDE;
67 virtual PP_Bool GetRecvFromAddress(PP_Flash_NetAddress* addr) OVERRIDE; 67 virtual PP_Bool GetRecvFromAddress(PP_NetAddress_Private* addr) OVERRIDE;
68 68
69 virtual int32_t SendTo(const char* buffer, 69 virtual int32_t SendTo(const char* buffer,
70 int32_t num_bytes, 70 int32_t num_bytes,
71 const PP_Flash_NetAddress* addr, 71 const PP_NetAddress_Private* addr,
72 PP_CompletionCallback callback) OVERRIDE; 72 PP_CompletionCallback callback) OVERRIDE;
73 virtual void Close() OVERRIDE; 73 virtual void Close() OVERRIDE;
74 74
75 // Notifications from the proxy. 75 // Notifications from the proxy.
76 void OnBindCompleted(bool succeeded); 76 void OnBindCompleted(bool succeeded);
77 void OnRecvFromCompleted(bool succeeded, 77 void OnRecvFromCompleted(bool succeeded,
78 const std::string& data, 78 const std::string& data,
79 const PP_Flash_NetAddress& addr); 79 const PP_NetAddress_Private& addr);
80 void OnSendToCompleted(bool succeeded, 80 void OnSendToCompleted(bool succeeded,
81 int32_t bytes_written); 81 int32_t bytes_written);
82 82
83 private: 83 private:
84 void PostAbortAndClearIfNecessary(PP_CompletionCallback* callback); 84 void PostAbortAndClearIfNecessary(PP_CompletionCallback* callback);
85 85
86 PluginDispatcher* GetDispatcher() const { 86 PluginDispatcher* GetDispatcher() const {
87 return PluginDispatcher::GetForResource(this); 87 return PluginDispatcher::GetForResource(this);
88 } 88 }
89 89
90 uint32 socket_id_; 90 uint32 socket_id_;
91 91
92 bool binded_; 92 bool binded_;
93 bool closed_; 93 bool closed_;
94 94
95 PP_CompletionCallback bind_callback_; 95 PP_CompletionCallback bind_callback_;
96 PP_CompletionCallback recvfrom_callback_; 96 PP_CompletionCallback recvfrom_callback_;
97 PP_CompletionCallback sendto_callback_; 97 PP_CompletionCallback sendto_callback_;
98 98
99 char* read_buffer_; 99 char* read_buffer_;
100 int32_t bytes_to_read_; 100 int32_t bytes_to_read_;
101 101
102 PP_Flash_NetAddress recvfrom_addr_; 102 PP_NetAddress_Private recvfrom_addr_;
103 103
104 DISALLOW_COPY_AND_ASSIGN(FlashUDPSocket); 104 DISALLOW_COPY_AND_ASSIGN(FlashUDPSocket);
105 }; 105 };
106 106
107 FlashUDPSocket::FlashUDPSocket(const HostResource& resource, 107 FlashUDPSocket::FlashUDPSocket(const HostResource& resource,
108 uint32 socket_id) 108 uint32 socket_id)
109 : Resource(resource), 109 : Resource(resource),
110 socket_id_(socket_id), 110 socket_id_(socket_id),
111 binded_(false), 111 binded_(false),
112 closed_(false), 112 closed_(false),
(...skipping 14 matching lines...) Expand all
127 } 127 }
128 128
129 FlashUDPSocket::~FlashUDPSocket() { 129 FlashUDPSocket::~FlashUDPSocket() {
130 Close(); 130 Close();
131 } 131 }
132 132
133 PPB_Flash_UDPSocket_API* FlashUDPSocket::AsPPB_Flash_UDPSocket_API() { 133 PPB_Flash_UDPSocket_API* FlashUDPSocket::AsPPB_Flash_UDPSocket_API() {
134 return this; 134 return this;
135 } 135 }
136 136
137 int32_t FlashUDPSocket::Bind(const PP_Flash_NetAddress* addr, 137 int32_t FlashUDPSocket::Bind(const PP_NetAddress_Private* addr,
138 PP_CompletionCallback callback) { 138 PP_CompletionCallback callback) {
139 if (!addr || !callback.func) 139 if (!addr || !callback.func)
140 return PP_ERROR_BADARGUMENT; 140 return PP_ERROR_BADARGUMENT;
141 if (binded_ || closed_) 141 if (binded_ || closed_)
142 return PP_ERROR_FAILED; 142 return PP_ERROR_FAILED;
143 if (bind_callback_.func) 143 if (bind_callback_.func)
144 return PP_ERROR_INPROGRESS; 144 return PP_ERROR_INPROGRESS;
145 145
146 bind_callback_ = callback; 146 bind_callback_ = callback;
147 147
(...skipping 17 matching lines...) Expand all
165 bytes_to_read_ = std::min(num_bytes, kFlashUDPSocketMaxReadSize); 165 bytes_to_read_ = std::min(num_bytes, kFlashUDPSocketMaxReadSize);
166 recvfrom_callback_ = callback; 166 recvfrom_callback_ = callback;
167 167
168 // Send the request, the browser will call us back via RecvFromACK. 168 // Send the request, the browser will call us back via RecvFromACK.
169 GetDispatcher()->SendToBrowser( 169 GetDispatcher()->SendToBrowser(
170 new PpapiHostMsg_PPBFlashUDPSocket_RecvFrom( 170 new PpapiHostMsg_PPBFlashUDPSocket_RecvFrom(
171 socket_id_, num_bytes)); 171 socket_id_, num_bytes));
172 return PP_OK_COMPLETIONPENDING; 172 return PP_OK_COMPLETIONPENDING;
173 } 173 }
174 174
175 PP_Bool FlashUDPSocket::GetRecvFromAddress(PP_Flash_NetAddress* addr) { 175 PP_Bool FlashUDPSocket::GetRecvFromAddress(PP_NetAddress_Private* addr) {
176 if (!addr) 176 if (!addr)
177 return PP_FALSE; 177 return PP_FALSE;
178 178
179 *addr = recvfrom_addr_; 179 *addr = recvfrom_addr_;
180 return PP_TRUE; 180 return PP_TRUE;
181 } 181 }
182 182
183 int32_t FlashUDPSocket::SendTo(const char* buffer, 183 int32_t FlashUDPSocket::SendTo(const char* buffer,
184 int32_t num_bytes, 184 int32_t num_bytes,
185 const PP_Flash_NetAddress* addr, 185 const PP_NetAddress_Private* addr,
186 PP_CompletionCallback callback) { 186 PP_CompletionCallback callback) {
187 if (!buffer || num_bytes <= 0 || !addr || !callback.func) 187 if (!buffer || num_bytes <= 0 || !addr || !callback.func)
188 return PP_ERROR_BADARGUMENT; 188 return PP_ERROR_BADARGUMENT;
189 if (!binded_) 189 if (!binded_)
190 return PP_ERROR_FAILED; 190 return PP_ERROR_FAILED;
191 if (sendto_callback_.func) 191 if (sendto_callback_.func)
192 return PP_ERROR_INPROGRESS; 192 return PP_ERROR_INPROGRESS;
193 193
194 if (num_bytes > kFlashUDPSocketMaxWriteSize) 194 if (num_bytes > kFlashUDPSocketMaxWriteSize)
195 num_bytes = kFlashUDPSocketMaxWriteSize; 195 num_bytes = kFlashUDPSocketMaxWriteSize;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 233
234 if (succeeded) 234 if (succeeded)
235 binded_ = true; 235 binded_ = true;
236 236
237 PP_RunAndClearCompletionCallback(&bind_callback_, 237 PP_RunAndClearCompletionCallback(&bind_callback_,
238 succeeded ? PP_OK : PP_ERROR_FAILED); 238 succeeded ? PP_OK : PP_ERROR_FAILED);
239 } 239 }
240 240
241 void FlashUDPSocket::OnRecvFromCompleted(bool succeeded, 241 void FlashUDPSocket::OnRecvFromCompleted(bool succeeded,
242 const std::string& data, 242 const std::string& data,
243 const PP_Flash_NetAddress& addr) { 243 const PP_NetAddress_Private& addr) {
244 if (!recvfrom_callback_.func || !read_buffer_) { 244 if (!recvfrom_callback_.func || !read_buffer_) {
245 NOTREACHED(); 245 NOTREACHED();
246 return; 246 return;
247 } 247 }
248 248
249 if (succeeded) { 249 if (succeeded) {
250 CHECK_LE(static_cast<int32_t>(data.size()), bytes_to_read_); 250 CHECK_LE(static_cast<int32_t>(data.size()), bytes_to_read_);
251 if (!data.empty()) 251 if (!data.empty())
252 memcpy(read_buffer_, data.c_str(), data.size()); 252 memcpy(read_buffer_, data.c_str(), data.size());
253 } 253 }
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 if (iter == g_id_to_socket->end()) 336 if (iter == g_id_to_socket->end())
337 return; 337 return;
338 iter->second->OnBindCompleted(succeeded); 338 iter->second->OnBindCompleted(succeeded);
339 } 339 }
340 340
341 void PPB_Flash_UDPSocket_Proxy::OnMsgRecvFromACK( 341 void PPB_Flash_UDPSocket_Proxy::OnMsgRecvFromACK(
342 uint32 /* plugin_dispatcher_id */, 342 uint32 /* plugin_dispatcher_id */,
343 uint32 socket_id, 343 uint32 socket_id,
344 bool succeeded, 344 bool succeeded,
345 const std::string& data, 345 const std::string& data,
346 const PP_Flash_NetAddress& addr) { 346 const PP_NetAddress_Private& addr) {
347 if (!g_id_to_socket) { 347 if (!g_id_to_socket) {
348 NOTREACHED(); 348 NOTREACHED();
349 return; 349 return;
350 } 350 }
351 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id); 351 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id);
352 if (iter == g_id_to_socket->end()) 352 if (iter == g_id_to_socket->end())
353 return; 353 return;
354 iter->second->OnRecvFromCompleted(succeeded, data, addr); 354 iter->second->OnRecvFromCompleted(succeeded, data, addr);
355 } 355 }
356 356
357 void PPB_Flash_UDPSocket_Proxy::OnMsgSendToACK( 357 void PPB_Flash_UDPSocket_Proxy::OnMsgSendToACK(
358 uint32 /* plugin_dispatcher_id */, 358 uint32 /* plugin_dispatcher_id */,
359 uint32 socket_id, 359 uint32 socket_id,
360 bool succeeded, 360 bool succeeded,
361 int32_t bytes_written) { 361 int32_t bytes_written) {
362 if (!g_id_to_socket) { 362 if (!g_id_to_socket) {
363 NOTREACHED(); 363 NOTREACHED();
364 return; 364 return;
365 } 365 }
366 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id); 366 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id);
367 if (iter == g_id_to_socket->end()) 367 if (iter == g_id_to_socket->end())
368 return; 368 return;
369 iter->second->OnSendToCompleted(succeeded, bytes_written); 369 iter->second->OnSendToCompleted(succeeded, bytes_written);
370 } 370 }
371 371
372 } // namespace proxy 372 } // namespace proxy
373 } // namespace ppapi 373 } // namespace ppapi
374
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698