1 // Copyright (c) 2018 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 
5 #ifndef QUICHE_QUIC_CORE_FRAMES_QUIC_PATH_RESPONSE_FRAME_H_
6 #define QUICHE_QUIC_CORE_FRAMES_QUIC_PATH_RESPONSE_FRAME_H_
7 
8 #include <memory>
9 #include <ostream>
10 
11 #include "net/third_party/quiche/src/quic/core/quic_types.h"
12 
13 namespace quic {
14 
15 // Size of the entire IETF Quic Path Response frame.
16 const size_t kQuicPathResponseFrameSize = kQuicPathFrameBufferSize;
17 
18 struct QUIC_EXPORT_PRIVATE QuicPathResponseFrame {
19   QuicPathResponseFrame();
20   QuicPathResponseFrame(QuicControlFrameId control_frame_id,
21                         const QuicPathFrameBuffer& data_buff);
22   ~QuicPathResponseFrame();
23 
24   friend QUIC_EXPORT_PRIVATE std::ostream& operator<<(
25       std::ostream& os,
26       const QuicPathResponseFrame& frame);
27 
28   // A unique identifier of this control frame. 0 when this frame is received,
29   // and non-zero when sent.
30   QuicControlFrameId control_frame_id;
31 
32   QuicPathFrameBuffer data_buffer;
33 };
34 }  // namespace quic
35 
36 #endif  // QUICHE_QUIC_CORE_FRAMES_QUIC_PATH_RESPONSE_FRAME_H_
37