rch | 16c74d1d | 2016-04-22 06:14:07 | [diff] [blame] | 1 | // Copyright (c) 2012 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 | // |
Ryan Hamilton | 8d9ee76e | 2018-05-29 23:52:52 | [diff] [blame] | 5 | // The Chrome-specific helper for quic::QuicConnection which uses |
rch | 16c74d1d | 2016-04-22 06:14:07 | [diff] [blame] | 6 | // a TaskRunner for alarms, and uses a DatagramClientSocket for writing data. |
| 7 | |
Ryan Hamilton | a3ee93a7 | 2018-08-01 22:03:08 | [diff] [blame] | 8 | #ifndef NET_QUIC_QUIC_CHROMIUM_ALARM_FACTORY_H_ |
| 9 | #define NET_QUIC_QUIC_CHROMIUM_ALARM_FACTORY_H_ |
rch | 16c74d1d | 2016-04-22 06:14:07 | [diff] [blame] | 10 | |
Keishi Hattori | 0e45c02 | 2021-11-27 09:25:52 | [diff] [blame] | 11 | #include "base/memory/raw_ptr.h" |
bnc | 81c46c1f | 2016-10-04 16:25:59 | [diff] [blame] | 12 | #include "net/base/net_export.h" |
Victor Vasiliev | 6bb59d2 | 2019-03-08 21:34:51 | [diff] [blame] | 13 | #include "net/third_party/quiche/src/quic/core/quic_alarm_factory.h" |
Bin Wu | 43ad146 | 2020-02-14 03:18:49 | [diff] [blame] | 14 | #include "net/third_party/quiche/src/quic/core/quic_clock.h" |
Victor Vasiliev | 6bb59d2 | 2019-03-08 21:34:51 | [diff] [blame] | 15 | #include "net/third_party/quiche/src/quic/core/quic_packets.h" |
| 16 | #include "net/third_party/quiche/src/quic/core/quic_time.h" |
rch | 16c74d1d | 2016-04-22 06:14:07 | [diff] [blame] | 17 | |
| 18 | namespace base { |
Francois Doray | c30a2d0 | 2021-06-18 21:36:01 | [diff] [blame] | 19 | class SequencedTaskRunner; |
rch | 16c74d1d | 2016-04-22 06:14:07 | [diff] [blame] | 20 | } // namespace base |
| 21 | |
| 22 | namespace net { |
| 23 | |
Ryan Hamilton | 8d9ee76e | 2018-05-29 23:52:52 | [diff] [blame] | 24 | class NET_EXPORT_PRIVATE QuicChromiumAlarmFactory |
| 25 | : public quic::QuicAlarmFactory { |
rch | 16c74d1d | 2016-04-22 06:14:07 | [diff] [blame] | 26 | public: |
Francois Doray | c30a2d0 | 2021-06-18 21:36:01 | [diff] [blame] | 27 | QuicChromiumAlarmFactory(base::SequencedTaskRunner* task_runner, |
Ryan Hamilton | 8d9ee76e | 2018-05-29 23:52:52 | [diff] [blame] | 28 | const quic::QuicClock* clock); |
Peter Boström | 293b134 | 2021-09-22 17:31:43 | [diff] [blame] | 29 | |
| 30 | QuicChromiumAlarmFactory(const QuicChromiumAlarmFactory&) = delete; |
| 31 | QuicChromiumAlarmFactory& operator=(const QuicChromiumAlarmFactory&) = delete; |
| 32 | |
rch | 16c74d1d | 2016-04-22 06:14:07 | [diff] [blame] | 33 | ~QuicChromiumAlarmFactory() override; |
| 34 | |
Ryan Hamilton | 8d9ee76e | 2018-05-29 23:52:52 | [diff] [blame] | 35 | // quic::QuicAlarmFactory |
| 36 | quic::QuicAlarm* CreateAlarm(quic::QuicAlarm::Delegate* delegate) override; |
| 37 | quic::QuicArenaScopedPtr<quic::QuicAlarm> CreateAlarm( |
| 38 | quic::QuicArenaScopedPtr<quic::QuicAlarm::Delegate> delegate, |
| 39 | quic::QuicConnectionArena* arena) override; |
rch | 16c74d1d | 2016-04-22 06:14:07 | [diff] [blame] | 40 | |
| 41 | private: |
Keishi Hattori | 0e45c02 | 2021-11-27 09:25:52 | [diff] [blame] | 42 | raw_ptr<base::SequencedTaskRunner> task_runner_; |
| 43 | const raw_ptr<const quic::QuicClock> clock_; |
rch | 16c74d1d | 2016-04-22 06:14:07 | [diff] [blame] | 44 | }; |
| 45 | |
| 46 | } // namespace net |
| 47 | |
Ryan Hamilton | a3ee93a7 | 2018-08-01 22:03:08 | [diff] [blame] | 48 | #endif // NET_QUIC_QUIC_CHROMIUM_ALARM_FACTORY_H_ |