1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef PPAPI_CPP_PRIVATE_NET_ADDRESS_PRIVATE_H_ 6 #define PPAPI_CPP_PRIVATE_NET_ADDRESS_PRIVATE_H_ 7 8 #include <string> 9 10 #include "ppapi/c/pp_stdint.h" 11 #include "ppapi/c/private/ppb_net_address_private.h" 12 13 namespace pp { 14 15 class NetAddressPrivate { 16 public: 17 // Returns true if the required interface is available. 18 static bool IsAvailable(); 19 20 static bool AreEqual(const PP_NetAddress_Private& addr1, 21 const PP_NetAddress_Private& addr2); 22 static bool AreHostsEqual(const PP_NetAddress_Private& addr1, 23 const PP_NetAddress_Private& addr2); 24 static std::string Describe(const PP_NetAddress_Private& addr, 25 bool include_port); 26 static bool ReplacePort(const PP_NetAddress_Private& addr_in, 27 uint16_t port, 28 PP_NetAddress_Private* addr_out); 29 static bool GetAnyAddress(bool is_ipv6, PP_NetAddress_Private* addr); 30 static PP_NetAddressFamily_Private GetFamily( 31 const PP_NetAddress_Private& addr); 32 static uint16_t GetPort(const PP_NetAddress_Private& addr); 33 static bool GetAddress(const PP_NetAddress_Private& addr, 34 void* address, 35 uint16_t address_size); 36 static uint32_t GetScopeID(const PP_NetAddress_Private& addr); 37 static bool CreateFromIPv4Address(const uint8_t ip[4], 38 uint16_t port, 39 struct PP_NetAddress_Private* addr_out); 40 static bool CreateFromIPv6Address(const uint8_t ip[16], 41 uint32_t scope_id, 42 uint16_t port, 43 struct PP_NetAddress_Private* addr_out); 44 }; 45 46 } // namespace pp 47 48 #endif // PPAPI_CPP_PRIVATE_NET_ADDRESS_PRIVATE_H_ 49