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.
5 #ifndef PPAPI_CPP_PRIVATE_NET_ADDRESS_PRIVATE_H_
6 #define PPAPI_CPP_PRIVATE_NET_ADDRESS_PRIVATE_H_
10 #include "ppapi/c/pp_stdint.h"
11 #include "ppapi/c/private/ppb_net_address_private.h"
15 class NetAddressPrivate
{
17 // Returns true if the required interface is available.
18 static bool IsAvailable();
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
,
26 static bool ReplacePort(const PP_NetAddress_Private
& addr_in
,
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
,
35 uint16_t address_size
);
36 static uint32_t GetScopeID(const PP_NetAddress_Private
& addr
);
37 static bool CreateFromIPv4Address(const uint8_t ip
[4],
39 struct PP_NetAddress_Private
* addr_out
);
40 static bool CreateFromIPv6Address(const uint8_t ip
[16],
43 struct PP_NetAddress_Private
* addr_out
);
48 #endif // PPAPI_CPP_PRIVATE_NET_ADDRESS_PRIVATE_H_