15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef JINGLE_GLUE_UTILS_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define JINGLE_GLUE_UTILS_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace net { 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class IPEndPoint; 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace net 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)namespace rtc { 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SocketAddress; 165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} // namespace rtc 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace cricket { 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class Candidate; 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace cricket 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace jingle_glue { 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Chromium and libjingle represent socket addresses differently. The 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// following two functions are used to convert addresses from one 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// representation to another. 277d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)bool IPEndPointToSocketAddress(const net::IPEndPoint& ip_endpoint, 285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) rtc::SocketAddress* address); 295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)bool SocketAddressToIPEndPoint(const rtc::SocketAddress& address, 307d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) net::IPEndPoint* ip_endpoint); 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Helper functions to serialize and deserialize P2P candidates. 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)std::string SerializeP2PCandidate(const cricket::Candidate& candidate); 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool DeserializeP2PCandidate(const std::string& address, 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cricket::Candidate* candidate); 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace jingle_glue 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // JINGLE_GLUE_UTILS_H_ 40