| // 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 "quic/test_tools/quic_stream_send_buffer_peer.h" | |
| #include "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 |