• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2010 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 #ifndef PDF_PDFIUM_PDFIUM_MEM_BUFFER_FILE_WRITE_
6 #define PDF_PDFIUM_PDFIUM_MEM_BUFFER_FILE_WRITE_
7 
8 #include <string>
9 
10 #include "third_party/pdfium/fpdfsdk/include/fpdfsave.h"
11 
12 namespace chrome_pdf {
13 
14 // Implementation of FPDF_FILEWRITE into a memory buffer.
15 class PDFiumMemBufferFileWrite : public FPDF_FILEWRITE {
16  public:
17   PDFiumMemBufferFileWrite();
18   ~PDFiumMemBufferFileWrite();
19 
buffer()20   const std::basic_string<unsigned char>& buffer() { return buffer_; }
size()21   size_t size() { return buffer_.size(); }
22 
23  private:
24   int DoWriteBlock(const void* data, unsigned long size);
25   static int WriteBlockImpl(FPDF_FILEWRITE* this_file_write, const void* data,
26                             unsigned long size);
27 
28   std::basic_string<unsigned char> buffer_;
29 };
30 
31 }  // namespace chrome_pdf
32 
33 #endif  // PDF_PDFIUM_PDFIUM_MEM_BUFFER_FILE_WRITE_
34 
35