// Copyright 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 #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& ipv4_addr) : PluginResource(connection, instance) { NetAddressPrivateImpl::CreateNetAddressPrivateFromIPv4Address(ipv4_addr, &address_); } NetAddressResource::NetAddressResource( Connection connection, PP_Instance instance, const PP_NetAddress_IPv6& 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 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* ipv4_addr) { return PP_FromBool( NetAddressPrivateImpl::DescribeNetAddressPrivateAsIPv4Address( address_, ipv4_addr)); } PP_Bool NetAddressResource::DescribeAsIPv6Address( PP_NetAddress_IPv6* ipv6_addr) { return PP_FromBool( NetAddressPrivateImpl::DescribeNetAddressPrivateAsIPv6Address( address_, ipv6_addr)); } const PP_NetAddress_Private& NetAddressResource::GetNetAddressPrivate() { return address_; } } // namespace proxy } // namespace ppapi