blob: f315e6460a9b74b9cd281e2510ebf6436fe3935b [file] [log] [blame]
henrike@webrtc.orgf0488722014-05-13 18:00:26 +00001/*
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
Steve Anton10542f22019-01-11 09:11:00 -080011#ifndef RTC_BASE_SOCKET_ADDRESS_PAIR_H_
12#define RTC_BASE_SOCKET_ADDRESS_PAIR_H_
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000013
Yves Gerey988cc082018-10-23 12:03:01 +020014#include <stddef.h>
15
Steve Anton10542f22019-01-11 09:11:00 -080016#include "rtc_base/socket_address.h"
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000017
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020018namespace rtc {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000019
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020020// Records a pair (source,destination) of socket addresses. The two addresses
21// identify a connection between two machines. (For UDP, this "connection" is
22// not maintained explicitly in a socket.)
23class SocketAddressPair {
Yves Gerey665174f2018-06-19 15:03:05 +020024 public:
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020025 SocketAddressPair() {}
26 SocketAddressPair(const SocketAddress& srs, const SocketAddress& dest);
27
28 const SocketAddress& source() const { return src_; }
29 const SocketAddress& destination() const { return dest_; }
30
Yves Gerey665174f2018-06-19 15:03:05 +020031 bool operator==(const SocketAddressPair& r) const;
32 bool operator<(const SocketAddressPair& r) const;
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020033
34 size_t Hash() const;
35
Yves Gerey665174f2018-06-19 15:03:05 +020036 private:
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020037 SocketAddress src_;
38 SocketAddress dest_;
39};
40
Yves Gerey665174f2018-06-19 15:03:05 +020041} // namespace rtc
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020042
Steve Anton10542f22019-01-11 09:11:00 -080043#endif // RTC_BASE_SOCKET_ADDRESS_PAIR_H_