Home | History | Annotate | Download | only in private
      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