1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// found in the LICENSE file.
4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#ifndef PDF_PDFIUM_PDFIUM_MEM_BUFFER_FILE_READ_H_
6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#define PDF_PDFIUM_PDFIUM_MEM_BUFFER_FILE_READ_H_
7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include <stdlib.h>
9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "third_party/pdfium/fpdfsdk/include/fpdfview.h"
11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace chrome_pdf {
13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Implementation of FPDF_FILEACCESS from a memory buffer.
15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class PDFiumMemBufferFileRead : public FPDF_FILEACCESS {
16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) public:
17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  PDFiumMemBufferFileRead(const void* data, size_t size);
18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  ~PDFiumMemBufferFileRead();
19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) private:
21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  static int GetBlock(void* param,
22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                      unsigned long position,
23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                      unsigned char* buf,
24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                      unsigned long size);
25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  const unsigned char* data_;
26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)};
27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}  // namespace chrome_pdf
29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#endif  // PDF_PDFIUM_PDFIUM_MEM_BUFFER_FILE_READ_H_
31