| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #ifndef PPAPI_CPP_DEV_UDP_SOCKET_DEV_H_ | 5 #ifndef PPAPI_CPP_DEV_UDP_SOCKET_DEV_H_ |
| 6 #define PPAPI_CPP_DEV_UDP_SOCKET_DEV_H_ | 6 #define PPAPI_CPP_DEV_UDP_SOCKET_DEV_H_ |
| 7 | 7 |
| 8 #include "ppapi/c/dev/ppb_udp_socket_dev.h" | 8 #include "ppapi/c/dev/ppb_udp_socket_dev.h" |
| 9 #include "ppapi/cpp/dev/net_address_dev.h" | 9 #include "ppapi/cpp/net_address.h" |
| 10 #include "ppapi/cpp/pass_ref.h" | 10 #include "ppapi/cpp/pass_ref.h" |
| 11 #include "ppapi/cpp/resource.h" | 11 #include "ppapi/cpp/resource.h" |
| 12 | 12 |
| 13 namespace pp { | 13 namespace pp { |
| 14 | 14 |
| 15 class CompletionCallback; | 15 class CompletionCallback; |
| 16 class InstanceHandle; | 16 class InstanceHandle; |
| 17 class Var; | 17 class Var; |
| 18 | 18 |
| 19 template <typename T> class CompletionCallbackWithOutput; | 19 template <typename T> class CompletionCallbackWithOutput; |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 59 UDPSocket_Dev& operator=(const UDPSocket_Dev& other); | 59 UDPSocket_Dev& operator=(const UDPSocket_Dev& other); |
| 60 | 60 |
| 61 /// Static function for determining whether the browser supports the | 61 /// Static function for determining whether the browser supports the |
| 62 /// <code>PPB_UDPSocket_Dev</code> interface. | 62 /// <code>PPB_UDPSocket_Dev</code> interface. |
| 63 /// | 63 /// |
| 64 /// @return true if the interface is available, false otherwise. | 64 /// @return true if the interface is available, false otherwise. |
| 65 static bool IsAvailable(); | 65 static bool IsAvailable(); |
| 66 | 66 |
| 67 /// Binds the socket to the given address. | 67 /// Binds the socket to the given address. |
| 68 /// | 68 /// |
| 69 /// @param[in] addr A <code>NetAddress_Dev</code> object. | 69 /// @param[in] addr A <code>NetAddress</code> object. |
| 70 /// @param[in] callback A <code>CompletionCallback</code> to be called upon | 70 /// @param[in] callback A <code>CompletionCallback</code> to be called upon |
| 71 /// completion. | 71 /// completion. |
| 72 /// | 72 /// |
| 73 /// @return An int32_t containing an error code from <code>pp_errors.h</code>. | 73 /// @return An int32_t containing an error code from <code>pp_errors.h</code>. |
| 74 /// <code>PP_ERROR_NOACCESS</code> will be returned if the caller doesn't have | 74 /// <code>PP_ERROR_NOACCESS</code> will be returned if the caller doesn't have |
| 75 /// required permissions. <code>PP_ERROR_ADDRESS_IN_USE</code> will be | 75 /// required permissions. <code>PP_ERROR_ADDRESS_IN_USE</code> will be |
| 76 /// returned if the address is already in use. | 76 /// returned if the address is already in use. |
| 77 int32_t Bind(const NetAddress_Dev& addr, | 77 int32_t Bind(const NetAddress& addr, |
| 78 const CompletionCallback& callback); | 78 const CompletionCallback& callback); |
| 79 | 79 |
| 80 /// Get the address that the socket is bound to. The socket must be bound. | 80 /// Get the address that the socket is bound to. The socket must be bound. |
| 81 /// | 81 /// |
| 82 /// @return A <code>NetAddress_Dev</code> object. The object will be null | 82 /// @return A <code>NetAddress</code> object. The object will be null |
| 83 /// (i.e., is_null() returns true) on failure. | 83 /// (i.e., is_null() returns true) on failure. |
| 84 NetAddress_Dev GetBoundAddress(); | 84 NetAddress GetBoundAddress(); |
| 85 | 85 |
| 86 /// Receives data from the socket and stores the source address. The socket | 86 /// Receives data from the socket and stores the source address. The socket |
| 87 /// must be bound. | 87 /// must be bound. |
| 88 /// | 88 /// |
| 89 /// <strong>Caveat:</strong> You should be careful about the lifetime of | 89 /// <strong>Caveat:</strong> You should be careful about the lifetime of |
| 90 /// <code>buffer</code>. Typically you will use a | 90 /// <code>buffer</code>. Typically you will use a |
| 91 /// <code>CompletionCallbackFactory</code> to scope callbacks to the lifetime | 91 /// <code>CompletionCallbackFactory</code> to scope callbacks to the lifetime |
| 92 /// of your class. When your class goes out of scope, the callback factory | 92 /// of your class. When your class goes out of scope, the callback factory |
| 93 /// will not actually cancel the operation, but will rather just skip issuing | 93 /// will not actually cancel the operation, but will rather just skip issuing |
| 94 /// the callback on your class. This means that if the underlying | 94 /// the callback on your class. This means that if the underlying |
| 95 /// <code>PPB_UDPSocket_Dev</code> resource outlives your class, the browser | 95 /// <code>PPB_UDPSocket_Dev</code> resource outlives your class, the browser |
| 96 /// will still try to write into your buffer when the operation completes. | 96 /// will still try to write into your buffer when the operation completes. |
| 97 /// The buffer must be kept valid until then to avoid memory corruption. | 97 /// The buffer must be kept valid until then to avoid memory corruption. |
| 98 /// If you want to release the buffer while the <code>RecvFrom()</code> call | 98 /// If you want to release the buffer while the <code>RecvFrom()</code> call |
| 99 /// is still pending, you should call <code>Close()</code> to ensure that the | 99 /// is still pending, you should call <code>Close()</code> to ensure that the |
| 100 /// buffer won't be accessed in the future. | 100 /// buffer won't be accessed in the future. |
| 101 /// | 101 /// |
| 102 /// @param[out] buffer The buffer to store the received data on success. It | 102 /// @param[out] buffer The buffer to store the received data on success. It |
| 103 /// must be at least as large as <code>num_bytes</code>. | 103 /// must be at least as large as <code>num_bytes</code>. |
| 104 /// @param[in] num_bytes The number of bytes to receive. | 104 /// @param[in] num_bytes The number of bytes to receive. |
| 105 /// @param[in] callback A <code>CompletionCallbackWithOutput</code> to be | 105 /// @param[in] callback A <code>CompletionCallbackWithOutput</code> to be |
| 106 /// called upon completion. | 106 /// called upon completion. |
| 107 /// | 107 /// |
| 108 /// @return A non-negative number on success to indicate how many bytes have | 108 /// @return A non-negative number on success to indicate how many bytes have |
| 109 /// been received; otherwise, an error code from <code>pp_errors.h</code>. | 109 /// been received; otherwise, an error code from <code>pp_errors.h</code>. |
| 110 int32_t RecvFrom( | 110 int32_t RecvFrom( |
| 111 char* buffer, | 111 char* buffer, |
| 112 int32_t num_bytes, | 112 int32_t num_bytes, |
| 113 const CompletionCallbackWithOutput<NetAddress_Dev>& callback); | 113 const CompletionCallbackWithOutput<NetAddress>& callback); |
| 114 | 114 |
| 115 /// Sends data to a specific destination. The socket must be bound. | 115 /// Sends data to a specific destination. The socket must be bound. |
| 116 /// | 116 /// |
| 117 /// @param[in] buffer The buffer containing the data to send. | 117 /// @param[in] buffer The buffer containing the data to send. |
| 118 /// @param[in] num_bytes The number of bytes to send. | 118 /// @param[in] num_bytes The number of bytes to send. |
| 119 /// @param[in] addr A <code>NetAddress_Dev</code> object holding the | 119 /// @param[in] addr A <code>NetAddress</code> object holding the destination |
| 120 /// destination address. | 120 /// address. |
| 121 /// @param[in] callback A <code>CompletionCallback</code> to be called upon | 121 /// @param[in] callback A <code>CompletionCallback</code> to be called upon |
| 122 /// completion. | 122 /// completion. |
| 123 /// | 123 /// |
| 124 /// @return A non-negative number on success to indicate how many bytes have | 124 /// @return A non-negative number on success to indicate how many bytes have |
| 125 /// been sent; otherwise, an error code from <code>pp_errors.h</code>. | 125 /// been sent; otherwise, an error code from <code>pp_errors.h</code>. |
| 126 /// <code>PP_ERROR_NOACCESS</code> will be returned if the caller doesn't have | 126 /// <code>PP_ERROR_NOACCESS</code> will be returned if the caller doesn't have |
| 127 /// required permissions. | 127 /// required permissions. |
| 128 int32_t SendTo(const char* buffer, | 128 int32_t SendTo(const char* buffer, |
| 129 int32_t num_bytes, | 129 int32_t num_bytes, |
| 130 const NetAddress_Dev& addr, | 130 const NetAddress& addr, |
| 131 const CompletionCallback& callback); | 131 const CompletionCallback& callback); |
| 132 | 132 |
| 133 /// Cancels all pending reads and writes, and closes the socket. Any pending | 133 /// Cancels all pending reads and writes, and closes the socket. Any pending |
| 134 /// callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> if | 134 /// callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> if |
| 135 /// pending IO was interrupted. After a call to this method, no output | 135 /// pending IO was interrupted. After a call to this method, no output |
| 136 /// paramters passed into previous <code>RecvFrom()</code> calls will be | 136 /// paramters passed into previous <code>RecvFrom()</code> calls will be |
| 137 /// accessed. It is not valid to call <code>Bind()</code> again. | 137 /// accessed. It is not valid to call <code>Bind()</code> again. |
| 138 /// | 138 /// |
| 139 /// The socket is implicitly closed if it is destroyed, so you are not | 139 /// The socket is implicitly closed if it is destroyed, so you are not |
| 140 /// required to call this method. | 140 /// required to call this method. |
| (...skipping 10 matching lines...) Expand all Loading... |
| 151 /// | 151 /// |
| 152 /// @return An int32_t containing an error code from <code>pp_errors.h</code>. | 152 /// @return An int32_t containing an error code from <code>pp_errors.h</code>. |
| 153 int32_t SetOption(PP_UDPSocket_Option_Dev name, | 153 int32_t SetOption(PP_UDPSocket_Option_Dev name, |
| 154 const Var& value, | 154 const Var& value, |
| 155 const CompletionCallback& callback); | 155 const CompletionCallback& callback); |
| 156 }; | 156 }; |
| 157 | 157 |
| 158 } // namespace pp | 158 } // namespace pp |
| 159 | 159 |
| 160 #endif // PPAPI_CPP_DEV_UDP_SOCKET_DEV_H_ | 160 #endif // PPAPI_CPP_DEV_UDP_SOCKET_DEV_H_ |
| OLD | NEW |