blob: ac9790c5a631a4b272da5eb3c3e7b4d463e47ede [file] [log] [blame]
[email protected]1d197ef52012-11-07 20:41:291// 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 Hamilton8d9ee76e2018-05-29 23:52:525// The Chrome-specific helper for quic::QuicConnection which uses
[email protected]1d197ef52012-11-07 20:41:296// a TaskRunner for alarms, and uses a DatagramClientSocket for writing data.
7
Ryan Hamiltona3ee93a72018-08-01 22:03:088#ifndef NET_QUIC_QUIC_CHROMIUM_CONNECTION_HELPER_H_
9#define NET_QUIC_QUIC_CHROMIUM_CONNECTION_HELPER_H_
[email protected]1d197ef52012-11-07 20:41:2910
Avi Drissman13fc8932015-12-20 04:40:4611#include "base/macros.h"
[email protected]1d197ef52012-11-07 20:41:2912#include "net/base/ip_endpoint.h"
bnc81c46c1f2016-10-04 16:25:5913#include "net/base/net_export.h"
tfarina5dd13c22016-11-16 12:08:2614#include "net/socket/datagram_client_socket.h"
Ryan Hamilton56b10c5d2018-05-11 13:40:1615#include "net/third_party/quic/core/quic_connection.h"
16#include "net/third_party/quic/core/quic_packets.h"
17#include "net/third_party/quic/core/quic_simple_buffer_allocator.h"
18#include "net/third_party/quic/core/quic_time.h"
[email protected]1d197ef52012-11-07 20:41:2919
Ryan Hamilton8d9ee76e2018-05-29 23:52:5220namespace quic {
21class QuicClock;
22
23class QuicRandom;
24} // namespace quic
[email protected]1d197ef52012-11-07 20:41:2925namespace net {
26
rch12fef552016-01-15 16:26:3127class NET_EXPORT_PRIVATE QuicChromiumConnectionHelper
Ryan Hamilton8d9ee76e2018-05-29 23:52:5228 : public quic::QuicConnectionHelperInterface {
[email protected]1d197ef52012-11-07 20:41:2929 public:
Ryan Hamilton8d9ee76e2018-05-29 23:52:5230 QuicChromiumConnectionHelper(const quic::QuicClock* clock,
31 quic::QuicRandom* random_generator);
rch12fef552016-01-15 16:26:3132 ~QuicChromiumConnectionHelper() override;
[email protected]1d197ef52012-11-07 20:41:2933
Ryan Hamilton8d9ee76e2018-05-29 23:52:5234 // quic::QuicConnectionHelperInterface
35 const quic::QuicClock* GetClock() const override;
36 quic::QuicRandom* GetRandomGenerator() override;
37 quic::QuicBufferAllocator* GetStreamSendBufferAllocator() override;
[email protected]1d197ef52012-11-07 20:41:2938
[email protected]e13201d82012-12-12 05:00:3239 private:
Ryan Hamilton8d9ee76e2018-05-29 23:52:5240 const quic::QuicClock* clock_;
41 quic::QuicRandom* random_generator_;
42 quic::SimpleBufferAllocator buffer_allocator_;
[email protected]1d197ef52012-11-07 20:41:2943
rch12fef552016-01-15 16:26:3144 DISALLOW_COPY_AND_ASSIGN(QuicChromiumConnectionHelper);
[email protected]1d197ef52012-11-07 20:41:2945};
46
47} // namespace net
48
Ryan Hamiltona3ee93a72018-08-01 22:03:0849#endif // NET_QUIC_QUIC_CHROMIUM_CONNECTION_HELPER_H_