utils.h revision 7d4cd473f85ac64c3747c96c277f9e506a0d2246
1f2038fb01417bcf7698b87a5dfaa4a861539618aerik.corry@gmail.com// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org// Use of this source code is governed by a BSD-style license that can be
3a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org// found in the LICENSE file.
4a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
5a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#ifndef JINGLE_GLUE_UTILS_H_
6a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#define JINGLE_GLUE_UTILS_H_
7a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
8a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <string>
9a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
10a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgnamespace net {
11a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgclass IPEndPoint;
12a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org}  // namespace net
13a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
14a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgnamespace talk_base {
15a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgclass SocketAddress;
16a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org}  // namespace talk_base
17a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
18a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgnamespace cricket {
19a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgclass Candidate;
20a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org}  // namespace cricket
21a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
22a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgnamespace jingle_glue {
23a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
24a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org// Chromium and libjingle represent socket addresses differently. The
25a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org// following two functions are used to convert addresses from one
26a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org// representation to another.
27a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgbool IPEndPointToSocketAddress(const net::IPEndPoint& ip_endpoint,
28a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org                               talk_base::SocketAddress* address);
29a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgbool SocketAddressToIPEndPoint(const talk_base::SocketAddress& address,
30a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org                               net::IPEndPoint* ip_endpoint);
31a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
327979bbb1df2eaff193e85d44c8da1ffa1525b7fcfschneider@chromium.org// Helper functions to serialize and deserialize P2P candidates.
331c09276ce2ac5214e81ca554360b9f101187893blrn@chromium.orgstd::string SerializeP2PCandidate(const cricket::Candidate& candidate);
34a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgbool DeserializeP2PCandidate(const std::string& address,
35fb144a0716afe7ab8bf245f2391a9e53b3db3c89fschneider@chromium.org                             cricket::Candidate* candidate);
36c73d55b355913690124f3ee70c344035431cdd3ayangguo@chromium.org
377979bbb1df2eaff193e85d44c8da1ffa1525b7fcfschneider@chromium.org}  // namespace jingle_glue
38a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
39528ce02b8680a3ab6d75c7079f180a4016c69b7amachenbach@chromium.org#endif  // JINGLE_GLUE_UTILS_H_
40ddda9e81d3175130f2029c0e1205d265a00c32edjkummerow@chromium.org