7 #include "ppapi/c/pp_bool.h"
16 template <>
const char* interface_name<PPB_NetAddress_Private_1_1>() {
17 return PPB_NETADDRESS_PRIVATE_INTERFACE_1_1;
20 template <>
const char* interface_name<PPB_NetAddress_Private_1_0>() {
21 return PPB_NETADDRESS_PRIVATE_INTERFACE_1_0;
24 template <>
const char* interface_name<PPB_NetAddress_Private_0_1>() {
25 return PPB_NETADDRESS_PRIVATE_INTERFACE_0_1;
32 return has_interface<PPB_NetAddress_Private_1_1>() ||
33 has_interface<PPB_NetAddress_Private_1_0>() ||
34 has_interface<PPB_NetAddress_Private_0_1>();
39 const PP_NetAddress_Private& addr2) {
40 if (has_interface<PPB_NetAddress_Private_1_1>()) {
41 return !!get_interface<PPB_NetAddress_Private_1_1>()->
AreEqual(&addr1,
44 if (has_interface<PPB_NetAddress_Private_1_0>()) {
45 return !!get_interface<PPB_NetAddress_Private_1_0>()->
AreEqual(&addr1,
48 if (has_interface<PPB_NetAddress_Private_0_1>()) {
49 return !!get_interface<PPB_NetAddress_Private_0_1>()->
AreEqual(&addr1,
57 const PP_NetAddress_Private& addr2) {
58 if (has_interface<PPB_NetAddress_Private_1_1>()) {
59 return !!get_interface<PPB_NetAddress_Private_1_1>()->
AreHostsEqual(&addr1,
62 if (has_interface<PPB_NetAddress_Private_1_0>()) {
63 return !!get_interface<PPB_NetAddress_Private_1_0>()->
AreHostsEqual(&addr1,
66 if (has_interface<PPB_NetAddress_Private_0_1>()) {
67 return !!get_interface<PPB_NetAddress_Private_0_1>()->
AreHostsEqual(&addr1,
80 PP_Var result_pp_var = PP_MakeUndefined();
81 if (has_interface<PPB_NetAddress_Private_1_1>()) {
82 result_pp_var = get_interface<PPB_NetAddress_Private_1_1>()->
Describe(
85 PP_FromBool(include_port));
86 }
else if (has_interface<PPB_NetAddress_Private_1_0>()) {
87 result_pp_var = get_interface<PPB_NetAddress_Private_1_0>()->
Describe(
90 PP_FromBool(include_port));
91 }
else if (has_interface<PPB_NetAddress_Private_0_1>()) {
92 result_pp_var = get_interface<PPB_NetAddress_Private_0_1>()->
Describe(
95 PP_FromBool(include_port));
105 PP_NetAddress_Private* addr_out) {
106 if (has_interface<PPB_NetAddress_Private_1_1>()) {
107 return !!get_interface<PPB_NetAddress_Private_1_1>()->
ReplacePort(&addr_in,
111 if (has_interface<PPB_NetAddress_Private_1_0>()) {
112 return !!get_interface<PPB_NetAddress_Private_1_0>()->
ReplacePort(&addr_in,
116 if (has_interface<PPB_NetAddress_Private_0_1>()) {
117 return !!get_interface<PPB_NetAddress_Private_0_1>()->
ReplacePort(&addr_in,
126 PP_NetAddress_Private* addr) {
127 if (has_interface<PPB_NetAddress_Private_1_1>()) {
129 PP_FromBool(is_ipv6),
132 }
else if (has_interface<PPB_NetAddress_Private_1_0>()) {
134 PP_FromBool(is_ipv6),
137 }
else if (has_interface<PPB_NetAddress_Private_0_1>()) {
139 PP_FromBool(is_ipv6),
148 const PP_NetAddress_Private& addr) {
149 if (has_interface<PPB_NetAddress_Private_1_1>())
150 return get_interface<PPB_NetAddress_Private_1_1>()->
GetFamily(&addr);
151 if (has_interface<PPB_NetAddress_Private_1_0>())
152 return get_interface<PPB_NetAddress_Private_1_0>()->
GetFamily(&addr);
153 return PP_NETADDRESSFAMILY_PRIVATE_UNSPECIFIED;
158 if (has_interface<PPB_NetAddress_Private_1_1>())
159 return get_interface<PPB_NetAddress_Private_1_1>()->
GetPort(&addr);
160 if (has_interface<PPB_NetAddress_Private_1_0>())
161 return get_interface<PPB_NetAddress_Private_1_0>()->
GetPort(&addr);
168 uint16_t address_size) {
169 if (has_interface<PPB_NetAddress_Private_1_1>()) {
170 return PP_ToBool(get_interface<PPB_NetAddress_Private_1_1>()->
GetAddress(
175 if (has_interface<PPB_NetAddress_Private_1_0>()) {
176 return PP_ToBool(get_interface<PPB_NetAddress_Private_1_0>()->
GetAddress(
186 if (has_interface<PPB_NetAddress_Private_1_1>())
187 return get_interface<PPB_NetAddress_Private_1_1>()->
GetScopeID(&addr);
195 struct PP_NetAddress_Private* addr_out) {
196 if (has_interface<PPB_NetAddress_Private_1_1>()) {
206 const uint8_t ip[16],
209 struct PP_NetAddress_Private* addr_out) {
210 if (has_interface<PPB_NetAddress_Private_1_1>()) {
212 ip, scope_id, port, addr_out);
static std::string Describe(const PP_NetAddress_Private &addr, bool include_port)
std::string AsString() const
static PP_NetAddressFamily_Private GetFamily(const PP_NetAddress_Private &addr)
static bool CreateFromIPv4Address(const uint8_t ip[4], uint16_t port, struct PP_NetAddress_Private *addr_out)
static uint16_t GetPort(const PP_NetAddress_Private &addr)
static bool ReplacePort(const PP_NetAddress_Private &addr_in, uint16_t port, PP_NetAddress_Private *addr_out)
static bool IsAvailable()
static bool CreateFromIPv6Address(const uint8_t ip[16], uint32_t scope_id, uint16_t port, struct PP_NetAddress_Private *addr_out)
static bool GetAddress(const PP_NetAddress_Private &addr, void *address, uint16_t address_size)
static bool GetAnyAddress(bool is_ipv6, PP_NetAddress_Private *addr)
A generic type used for passing data types between the module and the page.
static bool AreEqual(const PP_NetAddress_Private &addr1, const PP_NetAddress_Private &addr2)
static bool AreHostsEqual(const PP_NetAddress_Private &addr1, const PP_NetAddress_Private &addr2)
PP_Module pp_module() const
static uint32_t GetScopeID(const PP_NetAddress_Private &addr)