| 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 "webkit/plugins/ppapi/ppb_flash_net_connector_impl.h" | 5 #include "webkit/plugins/ppapi/ppb_flash_net_connector_impl.h" |
| 6 | 6 |
| 7 #include "ppapi/c/pp_completion_callback.h" | 7 #include "ppapi/c/pp_completion_callback.h" |
| 8 #include "ppapi/c/private/ppb_flash_net_connector.h" | 8 #include "ppapi/c/private/ppb_flash_net_connector.h" |
| 9 #include "webkit/plugins/ppapi/common.h" | 9 #include "webkit/plugins/ppapi/common.h" |
| 10 #include "webkit/plugins/ppapi/plugin_delegate.h" | 10 #include "webkit/plugins/ppapi/plugin_delegate.h" |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 return PP_ERROR_BADARGUMENT; | 41 return PP_ERROR_BADARGUMENT; |
| 42 | 42 |
| 43 if (!callback.func) { | 43 if (!callback.func) { |
| 44 NOTIMPLEMENTED(); | 44 NOTIMPLEMENTED(); |
| 45 return PP_ERROR_BADARGUMENT; | 45 return PP_ERROR_BADARGUMENT; |
| 46 } | 46 } |
| 47 | 47 |
| 48 if (callback_.get() && !callback_->completed()) | 48 if (callback_.get() && !callback_->completed()) |
| 49 return PP_ERROR_INPROGRESS; | 49 return PP_ERROR_INPROGRESS; |
| 50 | 50 |
| 51 PP_Resource resource_id = GetReferenceNoAddRef(); | |
| 52 if (!resource_id) { | |
| 53 NOTREACHED(); | |
| 54 return PP_ERROR_FAILED; | |
| 55 } | |
| 56 | |
| 57 int32_t rv = instance()->delegate()->ConnectTcp(this, host, port); | 51 int32_t rv = instance()->delegate()->ConnectTcp(this, host, port); |
| 58 if (rv == PP_OK_COMPLETIONPENDING) { | 52 if (rv == PP_OK_COMPLETIONPENDING) { |
| 59 // Record callback and output buffers. | 53 // Record callback and output buffers. |
| 60 callback_ = new TrackedCompletionCallback( | 54 callback_ = new TrackedCompletionCallback( |
| 61 instance()->module()->GetCallbackTracker(), resource_id, callback); | 55 instance()->module()->GetCallbackTracker(), pp_resource(), callback); |
| 62 socket_out_ = socket_out; | 56 socket_out_ = socket_out; |
| 63 local_addr_out_ = local_addr_out; | 57 local_addr_out_ = local_addr_out; |
| 64 remote_addr_out_ = remote_addr_out; | 58 remote_addr_out_ = remote_addr_out; |
| 65 } else { | 59 } else { |
| 66 // This should never be completed synchronously successfully. | 60 // This should never be completed synchronously successfully. |
| 67 DCHECK_NE(rv, PP_OK); | 61 DCHECK_NE(rv, PP_OK); |
| 68 } | 62 } |
| 69 return rv; | 63 return rv; |
| 70 } | 64 } |
| 71 | 65 |
| 72 int32_t PPB_Flash_NetConnector_Impl::ConnectTcpAddress( | 66 int32_t PPB_Flash_NetConnector_Impl::ConnectTcpAddress( |
| 73 const PP_Flash_NetAddress* addr, | 67 const PP_Flash_NetAddress* addr, |
| 74 PP_FileHandle* socket_out, | 68 PP_FileHandle* socket_out, |
| 75 PP_Flash_NetAddress* local_addr_out, | 69 PP_Flash_NetAddress* local_addr_out, |
| 76 PP_Flash_NetAddress* remote_addr_out, | 70 PP_Flash_NetAddress* remote_addr_out, |
| 77 PP_CompletionCallback callback) { | 71 PP_CompletionCallback callback) { |
| 78 // |socket_out| is not optional. | 72 // |socket_out| is not optional. |
| 79 if (!socket_out) | 73 if (!socket_out) |
| 80 return PP_ERROR_BADARGUMENT; | 74 return PP_ERROR_BADARGUMENT; |
| 81 | 75 |
| 82 if (!callback.func) { | 76 if (!callback.func) { |
| 83 NOTIMPLEMENTED(); | 77 NOTIMPLEMENTED(); |
| 84 return PP_ERROR_BADARGUMENT; | 78 return PP_ERROR_BADARGUMENT; |
| 85 } | 79 } |
| 86 | 80 |
| 87 if (callback_.get() && !callback_->completed()) | 81 if (callback_.get() && !callback_->completed()) |
| 88 return PP_ERROR_INPROGRESS; | 82 return PP_ERROR_INPROGRESS; |
| 89 | 83 |
| 90 PP_Resource resource_id = GetReferenceNoAddRef(); | |
| 91 if (!resource_id) { | |
| 92 NOTREACHED(); | |
| 93 return PP_ERROR_FAILED; | |
| 94 } | |
| 95 | |
| 96 int32_t rv = instance()->delegate()->ConnectTcpAddress(this, addr); | 84 int32_t rv = instance()->delegate()->ConnectTcpAddress(this, addr); |
| 97 if (rv == PP_OK_COMPLETIONPENDING) { | 85 if (rv == PP_OK_COMPLETIONPENDING) { |
| 98 // Record callback and output buffers. | 86 // Record callback and output buffers. |
| 99 callback_ = new TrackedCompletionCallback( | 87 callback_ = new TrackedCompletionCallback( |
| 100 instance()->module()->GetCallbackTracker(), resource_id, callback); | 88 instance()->module()->GetCallbackTracker(), pp_resource(), callback); |
| 101 socket_out_ = socket_out; | 89 socket_out_ = socket_out; |
| 102 local_addr_out_ = local_addr_out; | 90 local_addr_out_ = local_addr_out; |
| 103 remote_addr_out_ = remote_addr_out; | 91 remote_addr_out_ = remote_addr_out; |
| 104 } else { | 92 } else { |
| 105 // This should never be completed synchronously successfully. | 93 // This should never be completed synchronously successfully. |
| 106 DCHECK_NE(rv, PP_OK); | 94 DCHECK_NE(rv, PP_OK); |
| 107 } | 95 } |
| 108 return rv; | 96 return rv; |
| 109 } | 97 } |
| 110 | 98 |
| (...skipping 26 matching lines...) Expand all Loading... |
| 137 socket_out_ = NULL; | 125 socket_out_ = NULL; |
| 138 local_addr_out_ = NULL; | 126 local_addr_out_ = NULL; |
| 139 remote_addr_out_ = NULL; | 127 remote_addr_out_ = NULL; |
| 140 | 128 |
| 141 callback->Run(rv); // Will complete abortively if necessary. | 129 callback->Run(rv); // Will complete abortively if necessary. |
| 142 } | 130 } |
| 143 | 131 |
| 144 } // namespace ppapi | 132 } // namespace ppapi |
| 145 } // namespace webkit | 133 } // namespace webkit |
| 146 | 134 |
| OLD | NEW |