| // Copyright 2017 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "quiche/quic/test_tools/quic_stream_send_buffer_peer.h" |
| |
| #include "quiche/quic/test_tools/quic_interval_deque_peer.h" |
| |
| namespace quic { |
| |
| namespace test { |
| |
| // static |
| void QuicStreamSendBufferPeer::SetStreamOffset( |
| QuicStreamSendBuffer* send_buffer, QuicStreamOffset stream_offset) { |
| send_buffer->stream_offset_ = stream_offset; |
| } |
| |
| // static |
| const BufferedSlice* QuicStreamSendBufferPeer::CurrentWriteSlice( |
| QuicStreamSendBuffer* send_buffer) { |
| auto wi = write_index(send_buffer); |
| |
| if (wi == -1) { |
| return nullptr; |
| } |
| return QuicIntervalDequePeer::GetItem(&send_buffer->interval_deque_, wi); |
| } |
| |
| QuicStreamOffset QuicStreamSendBufferPeer::EndOffset( |
| QuicStreamSendBuffer* send_buffer) { |
| return send_buffer->current_end_offset_; |
| } |
| |
| // static |
| QuicByteCount QuicStreamSendBufferPeer::TotalLength( |
| QuicStreamSendBuffer* send_buffer) { |
| QuicByteCount length = 0; |
| for (auto slice = send_buffer->interval_deque_.DataBegin(); |
| slice != send_buffer->interval_deque_.DataEnd(); ++slice) { |
| length += slice->slice.length(); |
| } |
| return length; |
| } |
| |
| // static |
| int32_t QuicStreamSendBufferPeer::write_index( |
| QuicStreamSendBuffer* send_buffer) { |
| return QuicIntervalDequePeer::GetCachedIndex(&send_buffer->interval_deque_); |
| } |
| |
| } // namespace test |
| |
| } // namespace quic |