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_test_mem_slice_vector_impl.h"
6 
7 namespace quic {
8 namespace test {
9 
~TestIOBuffer()10 TestIOBuffer::~TestIOBuffer() {
11   data_ = nullptr;
12 }
13 
~QuicTestMemSliceVectorImpl()14 QuicTestMemSliceVectorImpl::~QuicTestMemSliceVectorImpl() {}
15 
QuicTestMemSliceVectorImpl(std::vector<std::pair<char *,size_t>> buffers)16 QuicTestMemSliceVectorImpl::QuicTestMemSliceVectorImpl(
17     std::vector<std::pair<char*, size_t>> buffers) {
18   for (auto& buffer : buffers) {
19     buffers_.push_back(base::MakeRefCounted<TestIOBuffer>(buffer.first));
20     lengths_.push_back(buffer.second);
21   }
22 }
23 
QuicTestMemSliceVectorImpl(QuicTestMemSliceVectorImpl && other)24 QuicTestMemSliceVectorImpl::QuicTestMemSliceVectorImpl(
25     QuicTestMemSliceVectorImpl&& other) {
26   *this = std::move(other);
27 }
28 
operator =(QuicTestMemSliceVectorImpl && other)29 QuicTestMemSliceVectorImpl& QuicTestMemSliceVectorImpl::operator=(
30     QuicTestMemSliceVectorImpl&& other) {
31   if (this != &other) {
32     buffers_ = std::move(other.buffers_);
33     lengths_ = std::move(other.lengths_);
34   }
35   return *this;
36 }
37 
span()38 QuicMemSliceSpanImpl QuicTestMemSliceVectorImpl::span() {
39   return QuicMemSliceSpanImpl(buffers_.data(), lengths_.data(),
40                               buffers_.size());
41 }
42 
43 }  // namespace test
44 }  // namespace quic
45