Merge XFA to PDFium master at 4dc95e7 on 10/28/2014
[pdfium.git] / xfa_test / pdf / pdfium / pdfium_mem_buffer_file_write.h
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
20   const std::basic_string<unsigned char>& buffer() { return buffer_; }
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