1 // Copyright 2017 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 #include "net/quic/platform/impl/quic_mem_slice_span_impl.h"
6 
7 namespace quic {
8 
QuicMemSliceSpanImpl(const scoped_refptr<net::IOBuffer> * buffers,const size_t * lengths,size_t num_buffers)9 QuicMemSliceSpanImpl::QuicMemSliceSpanImpl(
10     const scoped_refptr<net::IOBuffer>* buffers,
11     const size_t* lengths,
12     size_t num_buffers)
13     : buffers_(buffers), lengths_(lengths), num_buffers_(num_buffers) {}
14 
QuicMemSliceSpanImpl(QuicMemSliceImpl * slice)15 QuicMemSliceSpanImpl::QuicMemSliceSpanImpl(QuicMemSliceImpl* slice)
16     : QuicMemSliceSpanImpl(slice->impl(), slice->impl_length(), 1) {}
17 
18 QuicMemSliceSpanImpl::QuicMemSliceSpanImpl(const QuicMemSliceSpanImpl& other) =
19     default;
20 QuicMemSliceSpanImpl& QuicMemSliceSpanImpl::operator=(
21     const QuicMemSliceSpanImpl& other) = default;
22 QuicMemSliceSpanImpl::QuicMemSliceSpanImpl(QuicMemSliceSpanImpl&& other) =
23     default;
24 QuicMemSliceSpanImpl& QuicMemSliceSpanImpl::operator=(
25     QuicMemSliceSpanImpl&& other) = default;
26 
27 QuicMemSliceSpanImpl::~QuicMemSliceSpanImpl() = default;
28 
total_length()29 QuicByteCount QuicMemSliceSpanImpl::total_length() {
30   QuicByteCount length = 0;
31   for (size_t i = 0; i < num_buffers_; ++i) {
32     length += lengths_[i];
33   }
34   return length;
35 }
36 
37 }  // namespace quic
38