OLD | NEW |
---|---|
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_net_connector_proxy.h" | 5 #include "ppapi/proxy/ppb_flash_net_connector_proxy.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "ppapi/c/pp_errors.h" | 9 #include "ppapi/c/pp_errors.h" |
10 #include "ppapi/c/private/ppb_flash_net_connector.h" | 10 #include "ppapi/c/private/ppb_flash_net_connector.h" |
11 #include "ppapi/proxy/plugin_dispatcher.h" | 11 #include "ppapi/proxy/plugin_dispatcher.h" |
12 #include "ppapi/proxy/plugin_resource.h" | 12 #include "ppapi/proxy/plugin_resource.h" |
13 #include "ppapi/proxy/ppapi_messages.h" | 13 #include "ppapi/proxy/ppapi_messages.h" |
14 #include "ppapi/proxy/serialized_var.h" | 14 #include "ppapi/proxy/serialized_var.h" |
15 | 15 |
16 namespace pp { | 16 namespace pp { |
17 namespace proxy { | 17 namespace proxy { |
18 | 18 |
19 std::string NetAddressToString(const PP_Flash_NetAddress& addr) { | 19 std::string NetAddressToString(const PP_Flash_NetAddress& addr) { |
20 return std::string(addr.data, std::min(static_cast<size_t>(addr.size), | 20 return std::string(addr.data, std::min(static_cast<size_t>(addr.size), |
21 sizeof(addr.data))); | 21 sizeof(addr.data))); |
22 } | 22 } |
23 | 23 |
24 void StringToNetAddress(const std::string& str, PP_Flash_NetAddress* addr) { | 24 void StringToNetAddress(const std::string& str, PP_Flash_NetAddress* addr) { |
25 addr->size = std::min(str.size(), sizeof(addr->data)); | 25 addr->size = std::min(str.size(), sizeof(addr->data)); |
26 memcpy(addr->data, str.data(), addr->size); | 26 memcpy(addr->data, str.data(), addr->size); |
27 } | 27 } |
28 | 28 |
29 class AbortCallbackTask : public Task { | |
30 public: | |
31 AbortCallbackTask(PP_CompletionCallback callback) | |
32 : callback_(callback) {} | |
33 | |
34 virtual void Run() { | |
35 PP_RunCompletionCallback(&callback_, PP_ERROR_ABORTED); | |
36 } | |
37 | |
38 private: | |
39 PP_CompletionCallback callback_; | |
40 }; | |
41 | |
29 class FlashNetConnector : public PluginResource { | 42 class FlashNetConnector : public PluginResource { |
30 public: | 43 public: |
31 FlashNetConnector(const HostResource& resource) | 44 FlashNetConnector(const HostResource& resource) |
32 : PluginResource(resource), | 45 : PluginResource(resource), |
33 callback_(PP_BlockUntilComplete()), | 46 callback_(PP_BlockUntilComplete()), |
34 local_addr_out_(NULL), | 47 local_addr_out_(NULL), |
35 remote_addr_out_(NULL) { | 48 remote_addr_out_(NULL) { |
36 } | 49 } |
37 ~FlashNetConnector() { | 50 ~FlashNetConnector() { |
38 if (callback_.func) | 51 if (callback_.func) |
39 PP_RunCompletionCallback(&callback_, PP_ERROR_ABORTED); | 52 MessageLoop::current()->PostTask(FROM_HERE, |
viettrungluu
2011/05/24 17:39:48
Nit: Our style rules apparently dictate braces for
| |
53 new AbortCallbackTask(callback_)); | |
40 } | 54 } |
41 | 55 |
42 // Resource overrides. | 56 // Resource overrides. |
43 virtual FlashNetConnector* AsFlashNetConnector() { | 57 virtual FlashNetConnector* AsFlashNetConnector() { |
44 return this; | 58 return this; |
45 } | 59 } |
46 | 60 |
47 bool HasCallback() const { | 61 bool HasCallback() const { |
48 return callback_.func != NULL; | 62 return callback_.func != NULL; |
49 } | 63 } |
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
318 } else { | 332 } else { |
319 dispatcher()->Send(new PpapiMsg_PPBFlashNetConnector_ConnectACK( | 333 dispatcher()->Send(new PpapiMsg_PPBFlashNetConnector_ConnectACK( |
320 INTERFACE_ID_PPB_FLASH_NETCONNECTOR, | 334 INTERFACE_ID_PPB_FLASH_NETCONNECTOR, |
321 info->resource, result, | 335 info->resource, result, |
322 IPC::InvalidPlatformFileForTransit(), std::string(), std::string())); | 336 IPC::InvalidPlatformFileForTransit(), std::string(), std::string())); |
323 } | 337 } |
324 } | 338 } |
325 | 339 |
326 } // namespace proxy | 340 } // namespace proxy |
327 } // namespace pp | 341 } // namespace pp |
OLD | NEW |