1 // Copyright (c) 2012 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 "pdf/pdfium/pdfium_mem_buffer_file_read.h" 6 7 #include <string.h> 8 9 namespace chrome_pdf { 10 11 PDFiumMemBufferFileRead::PDFiumMemBufferFileRead(const void* data, 12 size_t size) { 13 m_FileLen = size; 14 m_Param = this; 15 m_GetBlock = &GetBlock; 16 data_ = reinterpret_cast<const unsigned char*>(data); 17 } 18 19 PDFiumMemBufferFileRead::~PDFiumMemBufferFileRead() { 20 } 21 22 int PDFiumMemBufferFileRead::GetBlock(void* param, 23 unsigned long position, 24 unsigned char* buf, 25 unsigned long size) { 26 const PDFiumMemBufferFileRead* data = 27 reinterpret_cast<const PDFiumMemBufferFileRead*>(param); 28 if (!data || position + size > data->m_FileLen) 29 return 0; 30 memcpy(buf, data->data_ + position, size); 31 return 1; 32 } 33 34 } // namespace chrome_pdf 35