aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/PDFVersion.cc
blob: e30a3d45d2bda80bc262f13a8808274dc670af6a (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
#include <qpdf/PDFVersion.hh>

#include <qpdf/QUtil.hh>

PDFVersion::PDFVersion() :
    PDFVersion(0, 0, 0)
{
}

PDFVersion::PDFVersion(
    int major_version, int minor_version, int extension_level) :
    major_version(major_version),
    minor_version(minor_version),
    extension_level(extension_level)
{
}

bool
PDFVersion::operator<(PDFVersion const& rhs) const
{
    return (
        (this->major_version < rhs.major_version)           ? true
            : (this->major_version > rhs.major_version)     ? false
            : (this->minor_version < rhs.minor_version)     ? true
            : (this->minor_version > rhs.minor_version)     ? false
            : (this->extension_level < rhs.extension_level) ? true
                                                            : false);
}

bool
PDFVersion::operator==(PDFVersion const& rhs) const
{
    return (
        (this->major_version == rhs.major_version) &&
        (this->minor_version == rhs.minor_version) &&
        (this->extension_level == rhs.extension_level));
}

void
PDFVersion::updateIfGreater(PDFVersion const& other)
{
    if (*this < other) {
        *this = other;
    }
}

void
PDFVersion::getVersion(std::string& version, int& extension_level) const
{
    extension_level = this->extension_level;
    version = QUtil::int_to_string(this->major_version) + "." +
        QUtil::int_to_string(this->minor_version);
}

int
PDFVersion::getMajor() const
{
    return this->major_version;
}

int
PDFVersion::getMinor() const
{
    return this->minor_version;
}

int
PDFVersion::getExtensionLevel() const
{
    return this->extension_level;
}