OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/cpp/private/udp_socket_private.h" | 5 #include "ppapi/cpp/private/udp_socket_private.h" |
6 | 6 |
7 #include "ppapi/c/pp_bool.h" | 7 #include "ppapi/c/pp_bool.h" |
8 #include "ppapi/c/pp_errors.h" | 8 #include "ppapi/c/pp_errors.h" |
9 #include "ppapi/cpp/completion_callback.h" | 9 #include "ppapi/cpp/completion_callback.h" |
10 #include "ppapi/cpp/instance_handle.h" | 10 #include "ppapi/cpp/instance_handle.h" |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
46 const Var& value) { | 46 const Var& value) { |
47 if (has_interface<PPB_UDPSocket_Private_0_4>()) { | 47 if (has_interface<PPB_UDPSocket_Private_0_4>()) { |
48 return get_interface<PPB_UDPSocket_Private_0_4>()->SetSocketFeature( | 48 return get_interface<PPB_UDPSocket_Private_0_4>()->SetSocketFeature( |
49 pp_resource(), name, value.pp_var()); | 49 pp_resource(), name, value.pp_var()); |
50 } | 50 } |
51 return PP_ERROR_NOINTERFACE; | 51 return PP_ERROR_NOINTERFACE; |
52 } | 52 } |
53 | 53 |
54 int32_t UDPSocketPrivate::Bind(const PP_NetAddress_Private* addr, | 54 int32_t UDPSocketPrivate::Bind(const PP_NetAddress_Private* addr, |
55 const CompletionCallback& callback) { | 55 const CompletionCallback& callback) { |
56 if (has_interface<PPB_UDPSocket_Private_0_4>()) { | |
yzshen1
2013/02/08 21:51:11
Please see my comment in tcp_socket_private.cc
| |
57 return get_interface<PPB_UDPSocket_Private_0_4>()->Bind( | |
58 pp_resource(), addr, callback.pp_completion_callback()); | |
59 } | |
60 if (has_interface<PPB_UDPSocket_Private_0_3>()) { | 56 if (has_interface<PPB_UDPSocket_Private_0_3>()) { |
61 return get_interface<PPB_UDPSocket_Private_0_3>()->Bind( | 57 return get_interface<PPB_UDPSocket_Private_0_3>()->Bind( |
62 pp_resource(), addr, callback.pp_completion_callback()); | 58 pp_resource(), addr, callback.pp_completion_callback()); |
63 } | 59 } |
64 return callback.MayForce(PP_ERROR_NOINTERFACE); | 60 return callback.MayForce(PP_ERROR_NOINTERFACE); |
65 } | 61 } |
66 | 62 |
67 bool UDPSocketPrivate::GetBoundAddress(PP_NetAddress_Private* addr) { | 63 bool UDPSocketPrivate::GetBoundAddress(PP_NetAddress_Private* addr) { |
68 if (has_interface<PPB_UDPSocket_Private_0_4>()) { | |
69 PP_Bool result = | |
70 get_interface<PPB_UDPSocket_Private_0_4>()->GetBoundAddress( | |
71 pp_resource(), addr); | |
72 return PP_ToBool(result); | |
73 } | |
74 if (has_interface<PPB_UDPSocket_Private_0_3>()) { | 64 if (has_interface<PPB_UDPSocket_Private_0_3>()) { |
75 PP_Bool result = | 65 PP_Bool result = |
76 get_interface<PPB_UDPSocket_Private_0_3>()->GetBoundAddress( | 66 get_interface<PPB_UDPSocket_Private_0_3>()->GetBoundAddress( |
77 pp_resource(), addr); | 67 pp_resource(), addr); |
78 return PP_ToBool(result); | 68 return PP_ToBool(result); |
79 } | 69 } |
80 return false; | 70 return false; |
81 } | 71 } |
82 | 72 |
83 int32_t UDPSocketPrivate::RecvFrom(char* buffer, | 73 int32_t UDPSocketPrivate::RecvFrom(char* buffer, |
84 int32_t num_bytes, | 74 int32_t num_bytes, |
85 const CompletionCallback& callback) { | 75 const CompletionCallback& callback) { |
86 if (has_interface<PPB_UDPSocket_Private_0_4>()) { | |
87 return get_interface<PPB_UDPSocket_Private_0_4>()->RecvFrom( | |
88 pp_resource(), buffer, num_bytes, callback.pp_completion_callback()); | |
89 } | |
90 if (has_interface<PPB_UDPSocket_Private_0_3>()) { | 76 if (has_interface<PPB_UDPSocket_Private_0_3>()) { |
91 return get_interface<PPB_UDPSocket_Private_0_3>()->RecvFrom( | 77 return get_interface<PPB_UDPSocket_Private_0_3>()->RecvFrom( |
92 pp_resource(), buffer, num_bytes, callback.pp_completion_callback()); | 78 pp_resource(), buffer, num_bytes, callback.pp_completion_callback()); |
93 } | 79 } |
94 return callback.MayForce(PP_ERROR_NOINTERFACE); | 80 return callback.MayForce(PP_ERROR_NOINTERFACE); |
95 } | 81 } |
96 | 82 |
97 bool UDPSocketPrivate::GetRecvFromAddress(PP_NetAddress_Private* addr) { | 83 bool UDPSocketPrivate::GetRecvFromAddress(PP_NetAddress_Private* addr) { |
98 if (has_interface<PPB_UDPSocket_Private_0_4>()) { | |
99 PP_Bool result = | |
100 get_interface<PPB_UDPSocket_Private_0_4>()->GetRecvFromAddress( | |
101 pp_resource(), addr); | |
102 return PP_ToBool(result); | |
103 } | |
104 if (has_interface<PPB_UDPSocket_Private_0_3>()) { | 84 if (has_interface<PPB_UDPSocket_Private_0_3>()) { |
105 PP_Bool result = | 85 PP_Bool result = |
106 get_interface<PPB_UDPSocket_Private_0_3>()->GetRecvFromAddress( | 86 get_interface<PPB_UDPSocket_Private_0_3>()->GetRecvFromAddress( |
107 pp_resource(), addr); | 87 pp_resource(), addr); |
108 return PP_ToBool(result); | 88 return PP_ToBool(result); |
109 } | 89 } |
110 return false; | 90 return false; |
111 } | 91 } |
112 | 92 |
113 int32_t UDPSocketPrivate::SendTo(const char* buffer, | 93 int32_t UDPSocketPrivate::SendTo(const char* buffer, |
114 int32_t num_bytes, | 94 int32_t num_bytes, |
115 const PP_NetAddress_Private* addr, | 95 const PP_NetAddress_Private* addr, |
116 const CompletionCallback& callback) { | 96 const CompletionCallback& callback) { |
117 if (has_interface<PPB_UDPSocket_Private_0_4>()) { | |
118 return get_interface<PPB_UDPSocket_Private_0_4>()->SendTo( | |
119 pp_resource(), buffer, num_bytes, addr, | |
120 callback.pp_completion_callback()); | |
121 } | |
122 if (has_interface<PPB_UDPSocket_Private_0_3>()) { | 97 if (has_interface<PPB_UDPSocket_Private_0_3>()) { |
123 return get_interface<PPB_UDPSocket_Private_0_3>()->SendTo( | 98 return get_interface<PPB_UDPSocket_Private_0_3>()->SendTo( |
124 pp_resource(), buffer, num_bytes, addr, | 99 pp_resource(), buffer, num_bytes, addr, |
125 callback.pp_completion_callback()); | 100 callback.pp_completion_callback()); |
126 } | 101 } |
127 return callback.MayForce(PP_ERROR_NOINTERFACE); | 102 return callback.MayForce(PP_ERROR_NOINTERFACE); |
128 } | 103 } |
129 | 104 |
130 void UDPSocketPrivate::Close() { | 105 void UDPSocketPrivate::Close() { |
131 if (has_interface<PPB_UDPSocket_Private_0_4>()) | |
132 return get_interface<PPB_UDPSocket_Private_0_4>()->Close(pp_resource()); | |
133 if (has_interface<PPB_UDPSocket_Private_0_3>()) | 106 if (has_interface<PPB_UDPSocket_Private_0_3>()) |
134 return get_interface<PPB_UDPSocket_Private_0_3>()->Close(pp_resource()); | 107 return get_interface<PPB_UDPSocket_Private_0_3>()->Close(pp_resource()); |
135 } | 108 } |
136 | 109 |
137 } // namespace pp | 110 } // namespace pp |
OLD | NEW |