PoDoFo 1.2.0
Loading...
Searching...
No Matches
PdfVariantStack.h
1// SPDX-FileCopyrightText: 2021 Francesco Pretto <ceztko@gmail.com>
2// SPDX-License-Identifier: LGPL-2.0-or-later OR MPL-2.0
3
4#ifndef PDF_OPERATOR_STACK_H
5#define PDF_OPERATOR_STACK_H
6
7#include "PdfVariant.h"
8
9namespace PoDoFo {
10
11class PODOFO_API PdfVariantStack final
12{
13 friend class PdfContentStreamReader;
14
15public:
16 using Stack = std::vector<PdfVariant>;
17 using iterator = Stack::reverse_iterator;
18 using reverse_iterator = Stack::iterator;
19 using const_iterator = Stack::const_reverse_iterator;
20 using const_reverse_iterator = Stack::const_iterator;
21
22public:
23 void Push(const PdfVariant& var);
24 void Push(PdfVariant&& var);
25 void Pop();
26 void Clear();
27 unsigned GetSize() const;
28
29public:
30 const PdfVariant& operator[](size_t index) const;
31 PdfVariant& operator[](size_t index);
32 iterator begin();
33 iterator end();
34 reverse_iterator rbegin();
35 reverse_iterator rend();
36 const_iterator begin() const;
37 const_iterator end() const;
38 const_reverse_iterator rbegin() const;
39 const_reverse_iterator rend() const;
40 size_t size() const;
41
42private:
43 Stack m_variants;
44};
45
46}
47
48#endif // PDF_OPERATOR_STACK_H
All classes, functions, types and enums of PoDoFo are members of these namespace.
Definition basetypes.h:13
@ Push
Display the fields down appearance (requires an additional appearance stream to be set)