1 /*
2  *  Copyright 2004 The WebRTC Project Authors. All rights reserved.
3  *
4  *  Use of this source code is governed by a BSD-style license
5  *  that can be found in the LICENSE file in the root of the source
6  *  tree. An additional intellectual property rights grant can be found
7  *  in the file PATENTS.  All contributing project authors may
8  *  be found in the AUTHORS file in the root of the source tree.
9  */
10 
11 #ifndef WEBRTC_BASE_SOCKETADDRESSPAIR_H__
12 #define WEBRTC_BASE_SOCKETADDRESSPAIR_H__
13 
14 #include "webrtc/base/socketaddress.h"
15 
16 namespace rtc {
17 
18 // Records a pair (source,destination) of socket addresses.  The two addresses
19 // identify a connection between two machines.  (For UDP, this "connection" is
20 // not maintained explicitly in a socket.)
21 class SocketAddressPair {
22 public:
SocketAddressPair()23   SocketAddressPair() {}
24   SocketAddressPair(const SocketAddress& srs, const SocketAddress& dest);
25 
source()26   const SocketAddress& source() const { return src_; }
destination()27   const SocketAddress& destination() const { return dest_; }
28 
29   bool operator ==(const SocketAddressPair& r) const;
30   bool operator <(const SocketAddressPair& r) const;
31 
32   size_t Hash() const;
33 
34 private:
35   SocketAddress src_;
36   SocketAddress dest_;
37 };
38 
39 } // namespace rtc
40 
41 #endif // WEBRTC_BASE_SOCKETADDRESSPAIR_H__
42