Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(52)

Unified Diff: ppapi/cpp/private/net_address_private.cc

Issue 9722008: Add CreateFromIPv[46]Address() in PPB_NetAddress_Private. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ppapi/cpp/private/net_address_private.h ('k') | ppapi/shared_impl/private/net_address_private_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ppapi/cpp/private/net_address_private.cc
diff --git a/ppapi/cpp/private/net_address_private.cc b/ppapi/cpp/private/net_address_private.cc
index 1da2115cecf8cbfedb67e0bfd7a4f43ba2f5ebbd..0e881c7c97b41e687e1f4d420c8e277155ea03c3 100644
--- a/ppapi/cpp/private/net_address_private.cc
+++ b/ppapi/cpp/private/net_address_private.cc
@@ -13,6 +13,10 @@ namespace pp {
namespace {
+template <> const char* interface_name<PPB_NetAddress_Private_1_1>() {
+ return PPB_NETADDRESS_PRIVATE_INTERFACE_1_1;
+}
+
template <> const char* interface_name<PPB_NetAddress_Private_1_0>() {
return PPB_NETADDRESS_PRIVATE_INTERFACE_1_0;
}
@@ -25,13 +29,18 @@ template <> const char* interface_name<PPB_NetAddress_Private_0_1>() {
// static
bool NetAddressPrivate::IsAvailable() {
- return has_interface<PPB_NetAddress_Private_1_0>() ||
- has_interface<PPB_NetAddress_Private_0_1>();
+ return has_interface<PPB_NetAddress_Private_1_1>() ||
+ has_interface<PPB_NetAddress_Private_1_0>() ||
+ has_interface<PPB_NetAddress_Private_0_1>();
}
// static
bool NetAddressPrivate::AreEqual(const PP_NetAddress_Private& addr1,
const PP_NetAddress_Private& addr2) {
+ if (has_interface<PPB_NetAddress_Private_1_1>()) {
+ return !!get_interface<PPB_NetAddress_Private_1_1>()->AreEqual(&addr1,
+ &addr2);
+ }
if (has_interface<PPB_NetAddress_Private_1_0>()) {
return !!get_interface<PPB_NetAddress_Private_1_0>()->AreEqual(&addr1,
&addr2);
@@ -46,6 +55,10 @@ bool NetAddressPrivate::AreEqual(const PP_NetAddress_Private& addr1,
// static
bool NetAddressPrivate::AreHostsEqual(const PP_NetAddress_Private& addr1,
const PP_NetAddress_Private& addr2) {
+ if (has_interface<PPB_NetAddress_Private_1_1>()) {
+ return !!get_interface<PPB_NetAddress_Private_1_1>()->AreHostsEqual(&addr1,
+ &addr2);
+ }
if (has_interface<PPB_NetAddress_Private_1_0>()) {
return !!get_interface<PPB_NetAddress_Private_1_0>()->AreHostsEqual(&addr1,
&addr2);
@@ -65,7 +78,12 @@ std::string NetAddressPrivate::Describe(const PP_NetAddress_Private& addr,
return std::string();
PP_Var result_pp_var = PP_MakeUndefined();
- if (has_interface<PPB_NetAddress_Private_1_0>()) {
+ if (has_interface<PPB_NetAddress_Private_1_1>()) {
+ result_pp_var = get_interface<PPB_NetAddress_Private_1_1>()->Describe(
+ module->pp_module(),
+ &addr,
+ PP_FromBool(include_port));
+ } else if (has_interface<PPB_NetAddress_Private_1_0>()) {
result_pp_var = get_interface<PPB_NetAddress_Private_1_0>()->Describe(
module->pp_module(),
&addr,
@@ -85,6 +103,11 @@ std::string NetAddressPrivate::Describe(const PP_NetAddress_Private& addr,
bool NetAddressPrivate::ReplacePort(const PP_NetAddress_Private& addr_in,
uint16_t port,
PP_NetAddress_Private* addr_out) {
+ if (has_interface<PPB_NetAddress_Private_1_1>()) {
+ return !!get_interface<PPB_NetAddress_Private_1_1>()->ReplacePort(&addr_in,
+ port,
+ addr_out);
+ }
if (has_interface<PPB_NetAddress_Private_1_0>()) {
return !!get_interface<PPB_NetAddress_Private_1_0>()->ReplacePort(&addr_in,
port,
@@ -99,22 +122,32 @@ bool NetAddressPrivate::ReplacePort(const PP_NetAddress_Private& addr_in,
}
// static
-void NetAddressPrivate::GetAnyAddress(bool is_ipv6,
+bool NetAddressPrivate::GetAnyAddress(bool is_ipv6,
PP_NetAddress_Private* addr) {
- if (has_interface<PPB_NetAddress_Private_1_0>()) {
+ if (has_interface<PPB_NetAddress_Private_1_1>()) {
+ get_interface<PPB_NetAddress_Private_1_1>()->GetAnyAddress(
+ PP_FromBool(is_ipv6),
+ addr);
+ return true;
+ } else if (has_interface<PPB_NetAddress_Private_1_0>()) {
get_interface<PPB_NetAddress_Private_1_0>()->GetAnyAddress(
PP_FromBool(is_ipv6),
addr);
+ return true;
} else if (has_interface<PPB_NetAddress_Private_0_1>()) {
get_interface<PPB_NetAddress_Private_0_1>()->GetAnyAddress(
PP_FromBool(is_ipv6),
addr);
+ return true;
}
+ return false;
}
// static
PP_NetAddressFamily_Private NetAddressPrivate::GetFamily(
const PP_NetAddress_Private& addr) {
+ if (has_interface<PPB_NetAddress_Private_1_1>())
+ return get_interface<PPB_NetAddress_Private_1_1>()->GetFamily(&addr);
if (has_interface<PPB_NetAddress_Private_1_0>())
return get_interface<PPB_NetAddress_Private_1_0>()->GetFamily(&addr);
return PP_NETADDRESSFAMILY_UNSPECIFIED;
@@ -122,6 +155,8 @@ PP_NetAddressFamily_Private NetAddressPrivate::GetFamily(
// static
uint16_t NetAddressPrivate::GetPort(const PP_NetAddress_Private& addr) {
+ if (has_interface<PPB_NetAddress_Private_1_1>())
+ return get_interface<PPB_NetAddress_Private_1_1>()->GetPort(&addr);
if (has_interface<PPB_NetAddress_Private_1_0>())
return get_interface<PPB_NetAddress_Private_1_0>()->GetPort(&addr);
return 0;
@@ -131,6 +166,12 @@ uint16_t NetAddressPrivate::GetPort(const PP_NetAddress_Private& addr) {
bool NetAddressPrivate::GetAddress(const PP_NetAddress_Private& addr,
void* address,
uint16_t address_size) {
+ if (has_interface<PPB_NetAddress_Private_1_1>()) {
+ return PP_ToBool(get_interface<PPB_NetAddress_Private_1_1>()->GetAddress(
+ &addr,
+ address,
+ address_size));
+ }
if (has_interface<PPB_NetAddress_Private_1_0>()) {
return PP_ToBool(get_interface<PPB_NetAddress_Private_1_0>()->GetAddress(
&addr,
@@ -140,4 +181,38 @@ bool NetAddressPrivate::GetAddress(const PP_NetAddress_Private& addr,
return false;
}
+// static
+uint32_t NetAddressPrivate::GetScopeID(const PP_NetAddress_Private& addr) {
+ if (has_interface<PPB_NetAddress_Private_1_1>())
+ return get_interface<PPB_NetAddress_Private_1_1>()->GetScopeID(&addr);
+ return 0;
+}
+
+// static
+bool NetAddressPrivate::CreateFromIPv4Address(
+ const uint8_t ip[4],
+ uint16_t port,
+ struct PP_NetAddress_Private* addr_out) {
+ if (has_interface<PPB_NetAddress_Private_1_1>()) {
+ get_interface<PPB_NetAddress_Private_1_1>()->CreateFromIPv4Address(
+ ip, port, addr_out);
+ return true;
+ }
+ return false;
+}
+
+// static
+bool NetAddressPrivate::CreateFromIPv6Address(
+ const uint8_t ip[16],
+ uint32_t scope_id,
+ uint16_t port,
+ struct PP_NetAddress_Private* addr_out) {
+ if (has_interface<PPB_NetAddress_Private_1_1>()) {
+ get_interface<PPB_NetAddress_Private_1_1>()->CreateFromIPv6Address(
+ ip, scope_id, port, addr_out);
+ return true;
+ }
+ return false;
+}
+
} // namespace pp
« no previous file with comments | « ppapi/cpp/private/net_address_private.h ('k') | ppapi/shared_impl/private/net_address_private_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698