#include "pdf/pdfium/pdfium_mem_buffer_file_write.h"
namespace chrome_pdf {
PDFiumMemBufferFileWrite::PDFiumMemBufferFileWrite() {
version = 1;
WriteBlock = &WriteBlockImpl;
}
PDFiumMemBufferFileWrite::~PDFiumMemBufferFileWrite() = default;
std::vector<uint8_t> PDFiumMemBufferFileWrite::TakeBuffer() {
return std::move(buffer_);
}
int PDFiumMemBufferFileWrite::WriteBlockImpl(FPDF_FILEWRITE* this_file_write,
const void* data,
unsigned long size) {
auto* buffer = static_cast<PDFiumMemBufferFileWrite*>(this_file_write);
return buffer->DoWriteBlock(static_cast<const uint8_t*>(data), size);
}
int PDFiumMemBufferFileWrite::DoWriteBlock(const uint8_t* data,
unsigned long size) {
buffer_.insert(buffer_.end(), data, data + size);
return 1;
}
}