// Copyright (c) 2011 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_SHARED_IMPL_PRIVATE_NET_ADDRESS_PRIVATE_IMPL_H_ #define PPAPI_SHARED_IMPL_PRIVATE_NET_ADDRESS_PRIVATE_IMPL_H_ #include "base/basictypes.h" #include "ppapi/c/pp_stdint.h" #include "ppapi/shared_impl/ppapi_shared_export.h" struct PP_NetAddress_Private; struct sockaddr; namespace net { class AddressList; class IPEndPoint; } namespace ppapi { class PPAPI_SHARED_EXPORT NetAddressPrivateImpl { public: static bool ValidateNetAddress(const PP_NetAddress_Private& addr); static bool SockaddrToNetAddress(const sockaddr* sa, uint32_t sa_length, PP_NetAddress_Private* net_addr); static bool IPEndPointToNetAddress(const net::IPEndPoint& ip, PP_NetAddress_Private* net_addr); // Converts the first address to a PP_NetAddress_Private. static bool AddressListToNetAddress(const net::AddressList& address_list, PP_NetAddress_Private* net_addr); static bool NetAddressToIPEndPoint(const PP_NetAddress_Private& net_addr, net::IPEndPoint* ip_end_point); static bool NetAddressToAddressList(const PP_NetAddress_Private& net_addr, net::AddressList* address_list); static const PP_NetAddress_Private kInvalidNetAddress; private: DISALLOW_IMPLICIT_CONSTRUCTORS(NetAddressPrivateImpl); }; } // namespace ppapi #endif // PPAPI_SHARED_IMPL_PRIVATE_NET_ADDRESS_PRIVATE_IMPL_H_