blob: 6bba1da9a7cbb89d459ff7008a00a290c0818729 [file] [log] [blame]
Dan Sinclairae4656e2017-05-09 12:36:41 -04001// Copyright 2017 PDFium 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// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7#ifndef FPDFSDK_FSDK_FILEWRITEADAPTER_H_
8#define FPDFSDK_FSDK_FILEWRITEADAPTER_H_
9
Dan Sinclairae4656e2017-05-09 12:36:41 -040010#include "core/fxcrt/fx_stream.h"
Dan Sinclair0b950422017-09-21 15:49:49 -040011#include "core/fxcrt/retain_ptr.h"
Dan Sinclairae4656e2017-05-09 12:36:41 -040012#include "public/fpdf_save.h"
13
14class FSDK_FileWriteAdapter : public IFX_WriteStream {
15 public:
16 template <typename T, typename... Args>
Dan Sinclair0b950422017-09-21 15:49:49 -040017 friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
Dan Sinclairae4656e2017-05-09 12:36:41 -040018
19 bool WriteBlock(const void* data, size_t size) override;
Ryan Harrison275e2602017-09-18 14:23:18 -040020 bool WriteString(const ByteStringView& str) override;
Dan Sinclairae4656e2017-05-09 12:36:41 -040021
22 private:
23 explicit FSDK_FileWriteAdapter(FPDF_FILEWRITE* fileWriteStruct);
24 ~FSDK_FileWriteAdapter() override;
25
26 FPDF_FILEWRITE* fileWriteStruct_;
27};
28
29#endif // FPDFSDK_FSDK_FILEWRITEADAPTER_H_