aboutsummaryrefslogtreecommitdiffstats
path: root/qpdf/sizes.cc
blob: 65121872ad744f678f29fe04c73cade9f19e2f83 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
// See "ABI checks" in README-maintainer and comments in check_abi.

#include <iostream>

#include <qpdf/Buffer.hh>
#include <qpdf/BufferInputSource.hh>
#include <qpdf/ClosedFileInputSource.hh>
#include <qpdf/FileInputSource.hh>
#include <qpdf/InputSource.hh>
#include <qpdf/JSON.hh>
#include <qpdf/PDFVersion.hh>
#include <qpdf/Pipeline.hh>
#include <qpdf/Pl_Buffer.hh>
#include <qpdf/Pl_Concatenate.hh>
#include <qpdf/Pl_Count.hh>
#include <qpdf/Pl_DCT.hh>
#include <qpdf/Pl_Discard.hh>
#include <qpdf/Pl_Flate.hh>
#include <qpdf/Pl_Function.hh>
#include <qpdf/Pl_OStream.hh>
#include <qpdf/Pl_QPDFTokenizer.hh>
#include <qpdf/Pl_RunLength.hh>
#include <qpdf/Pl_StdioFile.hh>
#include <qpdf/Pl_String.hh>
#include <qpdf/QPDF.hh>
#include <qpdf/QPDFAcroFormDocumentHelper.hh>
#include <qpdf/QPDFAnnotationObjectHelper.hh>
#include <qpdf/QPDFCryptoProvider.hh>
#include <qpdf/QPDFEFStreamObjectHelper.hh>
#include <qpdf/QPDFEmbeddedFileDocumentHelper.hh>
#include <qpdf/QPDFExc.hh>
#include <qpdf/QPDFFileSpecObjectHelper.hh>
#include <qpdf/QPDFFormFieldObjectHelper.hh>
#include <qpdf/QPDFJob.hh>
#include <qpdf/QPDFLogger.hh>
#include <qpdf/QPDFMatrix.hh>
#include <qpdf/QPDFNameTreeObjectHelper.hh>
#include <qpdf/QPDFNumberTreeObjectHelper.hh>
#include <qpdf/QPDFObjGen.hh>
#include <qpdf/QPDFObjectHandle.hh>
#include <qpdf/QPDFOutlineDocumentHelper.hh>
#include <qpdf/QPDFOutlineObjectHelper.hh>
#include <qpdf/QPDFPageDocumentHelper.hh>
#include <qpdf/QPDFPageLabelDocumentHelper.hh>
#include <qpdf/QPDFPageObjectHelper.hh>
#include <qpdf/QPDFStreamFilter.hh>
#include <qpdf/QPDFSystemError.hh>
#include <qpdf/QPDFTokenizer.hh>
#include <qpdf/QPDFUsage.hh>
#include <qpdf/QPDFWriter.hh>
#include <qpdf/QPDFXRefEntry.hh>

#define ignore_class(cls)
#define print_size(cls) std::cout << #cls << " " << sizeof(cls) << std::endl

// These are not classes
// -------
ignore_class(QUtil);
ignore_class(QTC);

int
main()
{
    // Print the size of every class in the public API. This file is
    // read by the check_abi script at the top of the repository as
    // part of the binary compatibility checks performed before each
    // release.
    print_size(Buffer);
    print_size(BufferInputSource);
    print_size(ClosedFileInputSource);
    print_size(FileInputSource);
    print_size(InputSource);
    print_size(JSON);
    print_size(PDFVersion);
    print_size(Pipeline);
    print_size(Pl_Buffer);
    print_size(Pl_Concatenate);
    print_size(Pl_Count);
    print_size(Pl_DCT);
    print_size(Pl_Discard);
    print_size(Pl_Flate);
    print_size(Pl_Function);
    print_size(Pl_OStream);
    print_size(Pl_QPDFTokenizer);
    print_size(Pl_RunLength);
    print_size(Pl_StdioFile);
    print_size(Pl_String);
    print_size(QPDF);
    print_size(QPDFAcroFormDocumentHelper);
    print_size(QPDFAnnotationObjectHelper);
    print_size(QPDFCryptoProvider);
    print_size(QPDFEFStreamObjectHelper);
    print_size(QPDFEmbeddedFileDocumentHelper);
    print_size(QPDFExc);
    print_size(QPDFFileSpecObjectHelper);
    print_size(QPDFFormFieldObjectHelper);
    print_size(QPDFJob);
    print_size(QPDFJob::AttConfig);
    print_size(QPDFJob::Config);
    print_size(QPDFJob::CopyAttConfig);
    print_size(QPDFJob::EncConfig);
    print_size(QPDFJob::PagesConfig);
    print_size(QPDFJob::UOConfig);
    print_size(QPDFJob::PageLabelsConfig);
    print_size(QPDFLogger);
    print_size(QPDFMatrix);
    print_size(QPDFNameTreeObjectHelper);
    print_size(QPDFNameTreeObjectHelper::iterator);
    print_size(QPDFNumberTreeObjectHelper);
    print_size(QPDFNumberTreeObjectHelper::iterator);
    print_size(QPDFObjGen);
    print_size(QPDFObjGen::set);
    print_size(QPDFObjectHandle);
    print_size(QPDFObjectHandle::ParserCallbacks);
    print_size(QPDFObjectHandle::QPDFArrayItems);
    print_size(QPDFObjectHandle::QPDFArrayItems::iterator);
    print_size(QPDFObjectHandle::QPDFDictItems);
    print_size(QPDFObjectHandle::QPDFDictItems::iterator);
    print_size(QPDFObjectHandle::StreamDataProvider);
    print_size(QPDFObjectHandle::TokenFilter);
    print_size(QPDFOutlineDocumentHelper);
    print_size(QPDFOutlineObjectHelper);
    print_size(QPDFPageDocumentHelper);
    print_size(QPDFPageLabelDocumentHelper);
    print_size(QPDFPageObjectHelper);
    print_size(QPDFStreamFilter);
    print_size(QPDFSystemError);
    print_size(QPDFTokenizer);
    print_size(QPDFTokenizer::Token);
    print_size(QPDFUsage);
    print_size(QPDFWriter);
    print_size(QPDFWriter::FunctionProgressReporter);
    print_size(QPDFXRefEntry);
    return 0;
}