diff options
Diffstat (limited to 'xfa_test/pdf/pdfium/pdfium_mem_buffer_file_read.cc')
-rw-r--r-- | xfa_test/pdf/pdfium/pdfium_mem_buffer_file_read.cc | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/xfa_test/pdf/pdfium/pdfium_mem_buffer_file_read.cc b/xfa_test/pdf/pdfium/pdfium_mem_buffer_file_read.cc new file mode 100644 index 0000000000..b2371b42ff --- /dev/null +++ b/xfa_test/pdf/pdfium/pdfium_mem_buffer_file_read.cc @@ -0,0 +1,34 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "pdf/pdfium/pdfium_mem_buffer_file_read.h" + +#include <string.h> + +namespace chrome_pdf { + +PDFiumMemBufferFileRead::PDFiumMemBufferFileRead(const void* data, + size_t size) { + m_FileLen = size; + m_Param = this; + m_GetBlock = &GetBlock; + data_ = reinterpret_cast<const unsigned char*>(data); +} + +PDFiumMemBufferFileRead::~PDFiumMemBufferFileRead() { +} + +int PDFiumMemBufferFileRead::GetBlock(void* param, + unsigned long position, + unsigned char* buf, + unsigned long size) { + const PDFiumMemBufferFileRead* data = + reinterpret_cast<const PDFiumMemBufferFileRead*>(param); + if (!data || position + size > data->m_FileLen) + return 0; + memcpy(buf, data->data_ + position, size); + return 1; +} + +} // namespace chrome_pdf |