| // 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 <string> |
| |
| #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_ |