AusweisApp2
VersionNumber.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include <QDebug>
10 #include <QVersionNumber>
11 
12 namespace governikus
13 {
14 
16 {
17  friend bool operator==(const VersionNumber& pLeft, const VersionNumber& pRight);
18 
19  private:
20  QVersionNumber mVersionNumber;
21  QString mSuffix;
22 
23  [[nodiscard]] auto getInfoFromSuffix(QLatin1Char pStart, QLatin1Char pEnd = QLatin1Char('-')) const;
24 
25  public:
26  static const VersionNumber& getApplicationVersion();
27  explicit VersionNumber(const QString& pVersion);
28 
29  [[nodiscard]] const QVersionNumber& getVersionNumber() const;
30  [[nodiscard]] bool isDeveloperVersion() const;
31  [[nodiscard]] bool isBetaVersion() const;
32  [[nodiscard]] int getDistance() const;
33  [[nodiscard]] QString getBranch() const;
34  [[nodiscard]] QString getRevision() const;
35  [[nodiscard]] bool isDraft() const;
36  [[nodiscard]] QString getSuffix() const;
37 };
38 
39 
40 inline bool operator==(const VersionNumber& pLeft, const VersionNumber& pRight)
41 {
42  return &pLeft == &pRight || (
43  pLeft.mVersionNumber == pRight.mVersionNumber &&
44  pLeft.mSuffix == pRight.mSuffix);
45 }
46 
47 
48 inline bool operator!=(const VersionNumber& pLeft, const VersionNumber& pRight)
49 {
50  return !(pLeft == pRight);
51 }
52 
53 
54 inline bool operator<(const VersionNumber& pLeft, const VersionNumber& pRight)
55 {
56  return pLeft.getVersionNumber() < pRight.getVersionNumber() ||
57  (pLeft.getVersionNumber() == pRight.getVersionNumber() && pLeft.getDistance() < pRight.getDistance());
58 }
59 
60 
61 inline bool operator>(const VersionNumber& pLeft, const VersionNumber& pRight)
62 {
63  return pLeft.getVersionNumber() > pRight.getVersionNumber() ||
64  (pLeft.getVersionNumber() == pRight.getVersionNumber() && pLeft.getDistance() > pRight.getDistance());
65 }
66 
67 
68 inline QDebug operator<<(QDebug pDbg, const VersionNumber& pVersion)
69 {
70  QDebugStateSaver saver(pDbg);
71  pDbg.noquote().nospace() << pVersion.getVersionNumber().toString() << pVersion.getSuffix();
72  return pDbg;
73 }
74 
75 
76 } // namespace governikus
Definition: VersionNumber.h:16
bool isDeveloperVersion() const
Definition: VersionNumber.cpp:41
friend bool operator==(const VersionNumber &pLeft, const VersionNumber &pRight)
Definition: VersionNumber.h:40
const QVersionNumber & getVersionNumber() const
Definition: VersionNumber.cpp:35
bool isBetaVersion() const
Definition: VersionNumber.cpp:47
QString getSuffix() const
Definition: VersionNumber.cpp:125
int getDistance() const
Definition: VersionNumber.cpp:83
bool isDraft() const
Definition: VersionNumber.cpp:119
QString getRevision() const
Definition: VersionNumber.cpp:105
VersionNumber(const QString &pVersion)
static const VersionNumber & getApplicationVersion()
Definition: VersionNumber.cpp:29
QString getBranch() const
Definition: VersionNumber.cpp:99
A simple template renderer.
Definition: ActivationContext.h:15
bool operator>(const VersionNumber &pLeft, const VersionNumber &pRight)
Definition: VersionNumber.h:61
bool operator!=(const CVCertificate &pLeft, const CVCertificate &pRight)
Definition: CVCertificate.h:81
bool operator<(const VersionNumber &pLeft, const VersionNumber &pRight)
Definition: VersionNumber.h:54
QDebug operator<<(QDebug pDbg, const CommandApdu &pCommandApdu)
Definition: CommandApdu.h:89
bool operator==(const CommandApdu &pLeft, const CommandApdu &pRight)
Definition: CommandApdu.h:100