blob: c383c8f168e66a61f9b334ffaeedac4afbde8c88 [file] [log] [blame]
QUICHE teama6ef0a62019-03-07 20:34:33 -05001// Copyright (c) 2016 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
QUICHE team5be974e2020-12-29 18:35:24 -05005#include "quic/core/frames/quic_stream_frame.h"
QUICHE teama6ef0a62019-03-07 20:34:33 -05006
vasilvv918c6112020-10-09 12:22:46 -07007#include "absl/strings/string_view.h"
QUICHE team5be974e2020-12-29 18:35:24 -05008#include "quic/platform/api/quic_logging.h"
QUICHE teama6ef0a62019-03-07 20:34:33 -05009
10namespace quic {
11
wubbddcc502020-04-21 07:10:57 -070012QuicStreamFrame::QuicStreamFrame() : QuicInlinedFrame(STREAM_FRAME) {}
QUICHE teama6ef0a62019-03-07 20:34:33 -050013
14QuicStreamFrame::QuicStreamFrame(QuicStreamId stream_id,
15 bool fin,
16 QuicStreamOffset offset,
vasilvv918c6112020-10-09 12:22:46 -070017 absl::string_view data)
QUICHE teama6ef0a62019-03-07 20:34:33 -050018 : QuicStreamFrame(stream_id, fin, offset, data.data(), data.length()) {}
19
20QuicStreamFrame::QuicStreamFrame(QuicStreamId stream_id,
21 bool fin,
22 QuicStreamOffset offset,
23 QuicPacketLength data_length)
24 : QuicStreamFrame(stream_id, fin, offset, nullptr, data_length) {}
25
26QuicStreamFrame::QuicStreamFrame(QuicStreamId stream_id,
27 bool fin,
28 QuicStreamOffset offset,
29 const char* data_buffer,
30 QuicPacketLength data_length)
31 : QuicInlinedFrame(STREAM_FRAME),
32 fin(fin),
33 data_length(data_length),
34 stream_id(stream_id),
35 data_buffer(data_buffer),
36 offset(offset) {}
37
38std::ostream& operator<<(std::ostream& os,
39 const QuicStreamFrame& stream_frame) {
40 os << "{ stream_id: " << stream_frame.stream_id
41 << ", fin: " << stream_frame.fin << ", offset: " << stream_frame.offset
42 << ", length: " << stream_frame.data_length << " }\n";
43 return os;
44}
45
renjietang2a6ba792019-10-22 10:44:58 -070046bool QuicStreamFrame::operator==(const QuicStreamFrame& rhs) const {
47 return fin == rhs.fin && data_length == rhs.data_length &&
48 stream_id == rhs.stream_id && data_buffer == rhs.data_buffer &&
49 offset == rhs.offset;
50}
51
fayang93c83942019-11-07 10:41:16 -080052bool QuicStreamFrame::operator!=(const QuicStreamFrame& rhs) const {
53 return !(*this == rhs);
54}
55
QUICHE teama6ef0a62019-03-07 20:34:33 -050056} // namespace quic