summaryrefslogtreecommitdiff
path: root/xfa_test/pdf/pdfium/pdfium_mem_buffer_file_read.cc
diff options
context:
space:
mode:
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.cc34
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