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