1// Copyright (c) 2011 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 JINGLE_GLUE_UTILS_H_
6#define JINGLE_GLUE_UTILS_H_
7
8#include <string>
9
10namespace net {
11class IPEndPoint;
12}  // namespace net
13
14namespace rtc {
15class SocketAddress;
16}  // namespace rtc
17
18namespace cricket {
19class Candidate;
20}  // namespace cricket
21
22namespace jingle_glue {
23
24// Chromium and libjingle represent socket addresses differently. The
25// following two functions are used to convert addresses from one
26// representation to another.
27bool IPEndPointToSocketAddress(const net::IPEndPoint& ip_endpoint,
28                               rtc::SocketAddress* address);
29bool SocketAddressToIPEndPoint(const rtc::SocketAddress& address,
30                               net::IPEndPoint* ip_endpoint);
31
32// Helper functions to serialize and deserialize P2P candidates.
33std::string SerializeP2PCandidate(const cricket::Candidate& candidate);
34bool DeserializeP2PCandidate(const std::string& address,
35                             cricket::Candidate* candidate);
36
37}  // namespace jingle_glue
38
39#endif  // JINGLE_GLUE_UTILS_H_
40