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 12namespace chrome_pdf { 13 14// Implementation of FPDF_FILEWRITE into a memory buffer. 15class 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 35