7 #include "ppapi/c/pp_errors.h"
17 template <>
const char* interface_name<PPB_UDPSocket_1_0>() {
18 return PPB_UDPSOCKET_INTERFACE_1_0;
21 template <>
const char* interface_name<PPB_UDPSocket_1_1>() {
22 return PPB_UDPSOCKET_INTERFACE_1_1;
25 template <>
const char* interface_name<PPB_UDPSocket_1_2>() {
26 return PPB_UDPSOCKET_INTERFACE_1_2;
35 if (has_interface<PPB_UDPSocket_1_2>()) {
38 }
else if (has_interface<PPB_UDPSocket_1_1>()) {
41 }
else if (has_interface<PPB_UDPSocket_1_0>()) {
64 return has_interface<PPB_UDPSocket_1_2>() ||
65 has_interface<PPB_UDPSocket_1_1>() ||
66 has_interface<PPB_UDPSocket_1_0>();
71 if (has_interface<PPB_UDPSocket_1_2>()) {
72 return get_interface<PPB_UDPSocket_1_2>()->
Bind(
75 if (has_interface<PPB_UDPSocket_1_1>()) {
76 return get_interface<PPB_UDPSocket_1_1>()->
Bind(
79 if (has_interface<PPB_UDPSocket_1_0>()) {
80 return get_interface<PPB_UDPSocket_1_0>()->
Bind(
83 return callback.
MayForce(PP_ERROR_NOINTERFACE);
87 if (has_interface<PPB_UDPSocket_1_2>()) {
92 if (has_interface<PPB_UDPSocket_1_1>()) {
97 if (has_interface<PPB_UDPSocket_1_0>()) {
109 if (has_interface<PPB_UDPSocket_1_2>()) {
110 return get_interface<PPB_UDPSocket_1_2>()->
RecvFrom(
114 if (has_interface<PPB_UDPSocket_1_1>()) {
115 return get_interface<PPB_UDPSocket_1_1>()->
RecvFrom(
119 if (has_interface<PPB_UDPSocket_1_0>()) {
120 return get_interface<PPB_UDPSocket_1_0>()->
RecvFrom(
124 return callback.
MayForce(PP_ERROR_NOINTERFACE);
131 if (has_interface<PPB_UDPSocket_1_2>()) {
132 return get_interface<PPB_UDPSocket_1_2>()->
SendTo(
136 if (has_interface<PPB_UDPSocket_1_1>()) {
137 return get_interface<PPB_UDPSocket_1_1>()->
SendTo(
141 if (has_interface<PPB_UDPSocket_1_0>()) {
142 return get_interface<PPB_UDPSocket_1_0>()->
SendTo(
146 return callback.
MayForce(PP_ERROR_NOINTERFACE);
150 if (has_interface<PPB_UDPSocket_1_2>())
152 if (has_interface<PPB_UDPSocket_1_1>())
153 return get_interface<PPB_UDPSocket_1_1>()->Close(
pp_resource());
154 if (has_interface<PPB_UDPSocket_1_0>())
161 if (has_interface<PPB_UDPSocket_1_2>()) {
162 return get_interface<PPB_UDPSocket_1_2>()->
SetOption(
165 if (has_interface<PPB_UDPSocket_1_1>()) {
166 return get_interface<PPB_UDPSocket_1_1>()->
SetOption(
169 if (has_interface<PPB_UDPSocket_1_0>()) {
170 return get_interface<PPB_UDPSocket_1_0>()->
SetOption(
173 return callback.
MayForce(PP_ERROR_NOINTERFACE);
178 if (has_interface<PPB_UDPSocket_1_2>()) {
179 return get_interface<PPB_UDPSocket_1_2>()->
JoinGroup(
182 return callback.
MayForce(PP_ERROR_NOINTERFACE);
187 if (has_interface<PPB_UDPSocket_1_2>()) {
188 return get_interface<PPB_UDPSocket_1_2>()->
LeaveGroup(
191 return callback.
MayForce(PP_ERROR_NOINTERFACE);
int32_t SetOption(PP_UDPSocket_Option name, const Var &value, const CompletionCallback &callback)
int32_t LeaveGroup(const NetAddress &group, const CompletionCallback callback)
void PassRefFromConstructor(PP_Resource resource)
int32_t JoinGroup(const NetAddress &group, const CompletionCallback callback)
APIArgType output() const
int32_t MayForce(int32_t result) const
const PP_CompletionCallback & pp_completion_callback() const
NetAddress GetBoundAddress()
The NetAddress class represents a network address.
const PP_Var & pp_var() const
int32_t SendTo(const char *buffer, int32_t num_bytes, const NetAddress &addr, const CompletionCallback &callback)
static bool IsAvailable()
int32_t RecvFrom(char *buffer, int32_t num_bytes, const CompletionCallbackWithOutput< NetAddress > &callback)
UDPSocket & operator=(const UDPSocket &other)
PP_Resource pp_resource() const
A generic type used for passing data types between the module and the page.
virtual ~UDPSocket()
The destructor.
PP_Instance pp_instance() const
int32_t Bind(const NetAddress &addr, const CompletionCallback &callback)
A reference counted module resource.
Resource & operator=(const Resource &other)