diff options
author | Dan Sinclair <dsinclair@chromium.org> | 2017-05-09 12:36:41 -0400 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-05-09 17:50:54 +0000 |
commit | ae4656edebaea24d18d11a845c663240bf8e9d2d (patch) | |
tree | 51bcfc9916a1e13ca080f76a4cf65b21fa647993 /fpdfsdk/fpdfsave.cpp | |
parent | a0b1954794b7a8a279ba00787628cc7f8d1419d9 (diff) | |
download | pdfium-ae4656edebaea24d18d11a845c663240bf8e9d2d.tar.xz |
Move FPDF_FILEWRITE adapter to own file
This Cl moves the adapater out of the fpdfsave.cpp file into its own
h/cpp files. The adapter was renamed for clarity. The CPDF_Creator was
modified to take the adapter as a constructor param and the Create
methods consolidated.
Change-Id: Icb104f195ef532dda053c859aae356a8d4a7a54c
Reviewed-on: https://pdfium-review.googlesource.com/5151
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'fpdfsdk/fpdfsave.cpp')
-rw-r--r-- | fpdfsdk/fpdfsave.cpp | 51 |
1 files changed, 6 insertions, 45 deletions
diff --git a/fpdfsdk/fpdfsave.cpp b/fpdfsdk/fpdfsave.cpp index 638c22be26..b0e0ec7cc3 100644 --- a/fpdfsdk/fpdfsave.cpp +++ b/fpdfsdk/fpdfsave.cpp @@ -19,6 +19,7 @@ #include "core/fxcrt/cfx_memorystream.h" #include "core/fxcrt/fx_extension.h" #include "fpdfsdk/fsdk_define.h" +#include "fpdfsdk/fsdk_filewriteadapter.h" #include "public/fpdf_edit.h" #ifdef PDF_ENABLE_XFA @@ -39,45 +40,6 @@ #include <ctime> #endif -class CFX_IFileWrite final : public IFX_WriteStream { - public: - static CFX_RetainPtr<CFX_IFileWrite> Create(); - - bool Init(FPDF_FILEWRITE* pFileWriteStruct); - bool WriteBlock(const void* pData, size_t size) override; - - protected: - template <typename T, typename... Args> - friend CFX_RetainPtr<T> pdfium::MakeRetain(Args&&... args); - - CFX_IFileWrite(); - ~CFX_IFileWrite() override {} - - FPDF_FILEWRITE* m_pFileWriteStruct; -}; - -CFX_RetainPtr<CFX_IFileWrite> CFX_IFileWrite::Create() { - return pdfium::MakeRetain<CFX_IFileWrite>(); -} - -CFX_IFileWrite::CFX_IFileWrite() : m_pFileWriteStruct(nullptr) {} - -bool CFX_IFileWrite::Init(FPDF_FILEWRITE* pFileWriteStruct) { - if (!pFileWriteStruct) - return false; - - m_pFileWriteStruct = pFileWriteStruct; - return true; -} - -bool CFX_IFileWrite::WriteBlock(const void* pData, size_t size) { - if (!m_pFileWriteStruct) - return false; - - m_pFileWriteStruct->WriteBlock(m_pFileWriteStruct, pData, size); - return true; -} - namespace { #ifdef PDF_ENABLE_XFA @@ -294,17 +256,16 @@ bool FPDF_Doc_Save(FPDF_DOCUMENT document, if (flags < FPDF_INCREMENTAL || flags > FPDF_REMOVE_SECURITY) flags = 0; - CPDF_Creator FileMaker(pPDFDoc); + CPDF_Creator fileMaker(pPDFDoc, + pdfium::MakeRetain<FSDK_FileWriteAdapter>(pFileWrite)); if (bSetVersion) - FileMaker.SetFileVersion(fileVerion); + fileMaker.SetFileVersion(fileVerion); if (flags == FPDF_REMOVE_SECURITY) { flags = 0; - FileMaker.RemoveSecurity(); + fileMaker.RemoveSecurity(); } - CFX_RetainPtr<CFX_IFileWrite> pStreamWrite = CFX_IFileWrite::Create(); - pStreamWrite->Init(pFileWrite); - bool bRet = FileMaker.Create(pStreamWrite, flags); + bool bRet = fileMaker.Create(flags); #ifdef PDF_ENABLE_XFA SendPostSaveToXFADoc(pContext); #endif // PDF_ENABLE_XFA |