AusweisApp2
IfdVersion.h
gehe zur Dokumentation dieser Datei
1
5#pragma once
6
7#include <QDebug>
8#include <QString>
9#include <QVector>
10
11namespace governikus
12{
14{
15 public:
16 enum class Version : int
17 {
18 Unknown = -1,
19 v0,
20 v2,
21 latest = v2
22 };
23
24 private:
25 const Version mVersion;
26
27 static Version fromString(const QString& pVersionString);
28
29 public:
30 explicit IfdVersion(Version pVersion = Version::Unknown);
31 explicit IfdVersion(const QString& pVersionString);
32
33 [[nodiscard]] Version getVersion() const;
34 [[nodiscard]] bool isValid() const;
35 [[nodiscard]] bool isSupported() const;
36
37 bool operator==(const IfdVersion& pOther) const;
38 bool operator!=(const IfdVersion& pOther) const;
39
40 [[nodiscard]] QString toString() const;
41
42 static QVector<Version> supported();
43 static Version selectLatestSupported(const QVector<Version>& pVersions);
44};
45
46
47inline QDebug operator<<(QDebug pDbg, const IfdVersion& pVersion)
48{
49 pDbg << pVersion.toString();
50 return pDbg;
51}
52
53
54inline QDebug operator<<(QDebug pDbg, const IfdVersion::Version& pVersion)
55{
56 pDbg << IfdVersion(pVersion).toString();
57 return pDbg;
58}
59
60
61#ifndef QT_NO_DEBUG
62inline bool operator ==(const IfdVersion& pLeft, const IfdVersion::Version& pRight)
63{
64 return pLeft.getVersion() == pRight;
65}
66
67
68#endif
69} // namespace governikus
Definition: IfdVersion.h:14
QString toString() const
Definition: IfdVersion.cpp:52
static Version selectLatestSupported(const QVector< Version > &pVersions)
Definition: IfdVersion.cpp:76
IfdVersion(Version pVersion=Version::Unknown)
Definition: IfdVersion.cpp:28
bool operator==(const IfdVersion &pOther) const
Definition: IfdVersion.cpp:99
bool isSupported() const
Definition: IfdVersion.cpp:93
bool operator!=(const IfdVersion &pOther) const
Definition: IfdVersion.cpp:105
bool isValid() const
Definition: IfdVersion.cpp:40
Version
Definition: IfdVersion.h:17
static QVector< Version > supported()
Definition: IfdVersion.cpp:70
Version getVersion() const
Definition: IfdVersion.cpp:46
A simple template renderer.
Definition: ActivationContext.h:15
QDebug operator<<(QDebug pDbg, const CommandApdu &pCommandApdu)
Definition: CommandApdu.h:89
bool operator==(const CommandApdu &pLeft, const CommandApdu &pRight)
Definition: CommandApdu.h:100