// Copyright (c) 2012 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. #ifndef PPAPI_CPP_PRIVATE_NET_ADDRESS_PRIVATE_H_ #define PPAPI_CPP_PRIVATE_NET_ADDRESS_PRIVATE_H_ #include #include "ppapi/c/pp_stdint.h" #include "ppapi/c/private/ppb_net_address_private.h" namespace pp { class NetAddressPrivate { public: // Returns true if the required interface is available. static bool IsAvailable(); 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); static std::string Describe(const PP_NetAddress_Private& addr, bool include_port); static bool ReplacePort(const PP_NetAddress_Private& addr_in, uint16_t port, PP_NetAddress_Private* addr_out); static bool GetAnyAddress(bool is_ipv6, PP_NetAddress_Private* addr); static PP_NetAddressFamily_Private GetFamily( const PP_NetAddress_Private& addr); static uint16_t GetPort(const PP_NetAddress_Private& addr); static bool GetAddress(const PP_NetAddress_Private& addr, void* address, uint16_t address_size); static uint32_t GetScopeID(const PP_NetAddress_Private& addr); static bool CreateFromIPv4Address(const uint8_t ip[4], uint16_t port, struct PP_NetAddress_Private* addr_out); static bool CreateFromIPv6Address(const uint8_t ip[16], uint32_t scope_id, uint16_t port, struct PP_NetAddress_Private* addr_out); }; } // namespace pp #endif // PPAPI_CPP_PRIVATE_NET_ADDRESS_PRIVATE_H_