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)9QuicMemSliceSpanImpl::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)15QuicMemSliceSpanImpl::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()29QuicByteCount 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