Index: ppapi/proxy/net_address_resource.cc |
diff --git a/ppapi/proxy/net_address_resource.cc b/ppapi/proxy/net_address_resource.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..16d7fb3b18b5ec759b4a24c476c42aa910fdfbf7 |
--- /dev/null |
+++ b/ppapi/proxy/net_address_resource.cc |
@@ -0,0 +1,81 @@ |
+// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "ppapi/proxy/net_address_resource.h" |
+ |
+#include <string> |
+ |
+#include "ppapi/c/pp_bool.h" |
+#include "ppapi/shared_impl/private/net_address_private_impl.h" |
+#include "ppapi/shared_impl/var.h" |
+ |
+namespace ppapi { |
+namespace proxy { |
+ |
+NetAddressResource::NetAddressResource( |
+ Connection connection, |
+ PP_Instance instance, |
+ const PP_NetAddress_IPv4_Dev& ipv4_addr) |
+ : PluginResource(connection, instance) { |
+ NetAddressPrivateImpl::CreateNetAddressPrivateFromIPv4Address(ipv4_addr, |
+ &address_); |
+} |
+ |
+NetAddressResource::NetAddressResource( |
+ Connection connection, |
+ PP_Instance instance, |
+ const PP_NetAddress_IPv6_Dev& ipv6_addr) |
+ : PluginResource(connection, instance) { |
+ NetAddressPrivateImpl::CreateNetAddressPrivateFromIPv6Address(ipv6_addr, |
+ &address_); |
+} |
+ |
+NetAddressResource::NetAddressResource( |
+ Connection connection, |
+ PP_Instance instance, |
+ const PP_NetAddress_Private& private_addr) |
+ : PluginResource(connection, instance) { |
+ address_ = private_addr; |
+} |
+ |
+NetAddressResource::~NetAddressResource() { |
+} |
+ |
+thunk::PPB_NetAddress_API* NetAddressResource::AsPPB_NetAddress_API() { |
+ return this; |
+} |
+ |
+PP_NetAddress_Family_Dev NetAddressResource::GetFamily() { |
+ return NetAddressPrivateImpl::GetFamilyFromNetAddressPrivate(address_); |
+} |
+ |
+PP_Var NetAddressResource::DescribeAsString(PP_Bool include_port) { |
+ std::string description = NetAddressPrivateImpl::DescribeNetAddress( |
+ address_, PP_ToBool(include_port)); |
+ |
+ if (description.empty()) |
+ return PP_MakeUndefined(); |
+ return StringVar::StringToPPVar(description); |
+} |
+ |
+PP_Bool NetAddressResource::DescribeAsIPv4Address( |
+ PP_NetAddress_IPv4_Dev* ipv4_addr) { |
+ return PP_FromBool( |
+ NetAddressPrivateImpl::DescribeNetAddressPrivateAsIPv4Address( |
+ address_, ipv4_addr)); |
+} |
+ |
+PP_Bool NetAddressResource::DescribeAsIPv6Address( |
+ PP_NetAddress_IPv6_Dev* ipv6_addr) { |
+ return PP_FromBool( |
+ NetAddressPrivateImpl::DescribeNetAddressPrivateAsIPv6Address( |
+ address_, ipv6_addr)); |
+} |
+ |
+const PP_NetAddress_Private& NetAddressResource::GetNetAddressPrivate() { |
+ return address_; |
+} |
+ |
+} // namespace proxy |
+} // namespace ppapi |