// 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/cpp/dev/net_address_dev.h" #include "ppapi/cpp/instance_handle.h" #include "ppapi/cpp/module_impl.h" namespace pp { namespace { template <> const char* interface_name() { return PPB_NETADDRESS_DEV_INTERFACE_0_1; } } // namespace NetAddress_Dev::NetAddress_Dev() { } NetAddress_Dev::NetAddress_Dev(PassRef, PP_Resource resource) : Resource(PASS_REF, resource) { } NetAddress_Dev::NetAddress_Dev(const InstanceHandle& instance, const PP_NetAddress_IPv4_Dev& ipv4_addr) { if (has_interface()) { PassRefFromConstructor( get_interface()->CreateFromIPv4Address( instance.pp_instance(), &ipv4_addr)); } } NetAddress_Dev::NetAddress_Dev(const InstanceHandle& instance, const PP_NetAddress_IPv6_Dev& ipv6_addr) { if (has_interface()) { PassRefFromConstructor( get_interface()->CreateFromIPv6Address( instance.pp_instance(), &ipv6_addr)); } } NetAddress_Dev::NetAddress_Dev(const NetAddress_Dev& other) : Resource(other) { } NetAddress_Dev::~NetAddress_Dev() { } NetAddress_Dev& NetAddress_Dev::operator=(const NetAddress_Dev& other) { Resource::operator=(other); return *this; } // static bool NetAddress_Dev::IsAvailable() { return has_interface(); } PP_NetAddress_Family_Dev NetAddress_Dev::GetFamily() const { if (has_interface()) return get_interface()->GetFamily(pp_resource()); return PP_NETADDRESS_FAMILY_UNSPECIFIED; } Var NetAddress_Dev::DescribeAsString(PP_Bool include_port) const { if (has_interface()) { return Var(PASS_REF, get_interface()->DescribeAsString( pp_resource(), include_port)); } return Var(); } PP_Bool NetAddress_Dev::DescribeAsIPv4Address( PP_NetAddress_IPv4_Dev* ipv4_addr) const { if (has_interface()) { return get_interface()->DescribeAsIPv4Address( pp_resource(), ipv4_addr); } return PP_FALSE; } PP_Bool NetAddress_Dev::DescribeAsIPv6Address( PP_NetAddress_IPv6_Dev* ipv6_addr) const { if (has_interface()) { return get_interface()->DescribeAsIPv6Address( pp_resource(), ipv6_addr); } return PP_FALSE; } } // namespace pp