PoDoFo 1.2.0
Loading...
Searching...
No Matches
PdfObjectStreamProvider.h
1// SPDX-FileCopyrightText: 2022 Francesco Pretto <ceztko@gmail.com>
2// SPDX-License-Identifier: LGPL-2.0-or-later OR MPL-2.0
3
4#ifndef PDF_OBJECT_STREAM_PROVIDER_H
5#define PDF_OBJECT_STREAM_PROVIDER_H
6
7#include "PdfEncrypt.h"
8#include <podofo/auxiliary/InputStream.h>
9#include <podofo/auxiliary/OutputStream.h>
10
11namespace PoDoFo {
12
13class PdfObject;
14
15class PODOFO_API PdfObjectStreamProvider
16{
17public:
18 virtual ~PdfObjectStreamProvider();
19
20 virtual void Init(PdfObject& obj) = 0;
21
22 virtual void Clear() = 0;
23
24 virtual bool TryCopyFrom(const PdfObjectStreamProvider& rhs) = 0;
25
26 virtual bool TryMoveFrom(PdfObjectStreamProvider&& rhs) = 0;
27
28 virtual std::unique_ptr<InputStream> GetInputStream(PdfObject& obj) = 0;
29
30 virtual std::unique_ptr<OutputStream> GetOutputStream(PdfObject& obj) = 0;
31
32 virtual void Write(OutputStream& stream, const PdfStatefulEncrypt* encrypt) = 0;
33
34 virtual size_t GetLength() const = 0;
35};
36
37};
38
39#endif // PDF_OBJECT_STREAM_PROVIDER_H
All classes, functions, types and enums of PoDoFo are members of these namespace.
Definition basetypes.h:13