blob: a535ddec68af61f70538d59135f69a1e0d63554b [file] [log] [blame]
// 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 <stddef.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() = default;
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