1 // Copyright 2022 The PDFium Authors 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 "core/fxcrt/cfx_read_only_vector_stream.h" 6 7 #include <utility> 8 9 #include "core/fxcrt/cfx_read_only_span_stream.h" 10 #include "third_party/base/containers/span.h" 11 CFX_ReadOnlyVectorStream(DataVector<uint8_t> data)12CFX_ReadOnlyVectorStream::CFX_ReadOnlyVectorStream(DataVector<uint8_t> data) 13 : data_(std::move(data)), 14 stream_(pdfium::MakeRetain<CFX_ReadOnlySpanStream>(data_)) {} 15 CFX_ReadOnlyVectorStream(FixedUninitDataVector<uint8_t> data)16CFX_ReadOnlyVectorStream::CFX_ReadOnlyVectorStream( 17 FixedUninitDataVector<uint8_t> data) 18 : fixed_data_(std::move(data)), 19 stream_(pdfium::MakeRetain<CFX_ReadOnlySpanStream>(fixed_data_)) {} 20 21 CFX_ReadOnlyVectorStream::~CFX_ReadOnlyVectorStream() = default; 22 GetSize()23FX_FILESIZE CFX_ReadOnlyVectorStream::GetSize() { 24 return stream_->GetSize(); 25 } 26 ReadBlockAtOffset(pdfium::span<uint8_t> buffer,FX_FILESIZE offset)27bool CFX_ReadOnlyVectorStream::ReadBlockAtOffset(pdfium::span<uint8_t> buffer, 28 FX_FILESIZE offset) { 29 return stream_->ReadBlockAtOffset(buffer, offset); 30 } 31