AusweisApp2
Lade ...
Suche ...
Keine Treffer
IfdList.h
gehe zur Dokumentation dieser Datei
1
9#pragma once
10
11#include "IfdDescriptor.h"
12
13#include <QTime>
14#include <QTimer>
15
16
17namespace governikus
18{
19
21{
22 Q_DISABLE_COPY(IfdListEntry)
23
24 private:
25 IfdDescriptor mIfdDescriptor;
26 QTime mLastSeen;
27 QVector<QTime> mLastSeenHistory;
28
29 public:
30 explicit IfdListEntry(const IfdDescriptor& pIfdDescriptor);
31
32 void setLastSeenToNow();
33 bool cleanUpSeenTimestamps(int pReaderResponsiveTimeout);
34 [[nodiscard]] int getPercentSeen(int pCheckInterval = 1000, int pTimeFrame = 5000) const;
35
36 void setIfdDescriptor(const IfdDescriptor& pIfdDescriptor);
37
38 [[nodiscard]] bool containsEquivalent(const IfdDescriptor& pIfdDescriptor) const;
39 bool isEqual(const IfdListEntry* const pOther) const;
40
41 [[nodiscard]] const QTime& getLastSeen() const;
42 [[nodiscard]] const IfdDescriptor& getIfdDescriptor() const;
43
44};
45
46
48 : public QObject
49{
50 Q_OBJECT
51
52 Q_SIGNALS:
53 void fireDeviceAppeared(const QSharedPointer<IfdListEntry>&);
54 void fireDeviceUpdated(const QSharedPointer<IfdListEntry>&);
55 void fireDeviceVanished(const QSharedPointer<IfdListEntry>&);
56
57 public:
58 IfdList() = default;
59 ~IfdList() override = default;
60
61 virtual void update(const IfdDescriptor& pDescriptor) = 0;
62 virtual void clear() = 0;
63 [[nodiscard]] virtual QVector<QSharedPointer<IfdListEntry>> getIfdList() const;
64};
65
66
68 : public IfdList
69{
70 Q_OBJECT
71
72 private:
73 QTimer mTimer;
74 const int mReaderResponsiveTimeout;
75 QVector<QSharedPointer<IfdListEntry>> mResponsiveList;
76
77 private Q_SLOTS:
78 void onProcessUnresponsiveRemoteReaders();
79
80 public:
81 IfdListImpl(int pCheckInterval = 1000, int pReaderResponsiveTimeout = 5000);
82 ~IfdListImpl() override;
83
84 void update(const IfdDescriptor& pDescriptor) override;
85 void clear() override;
86 [[nodiscard]] QVector<QSharedPointer<IfdListEntry>> getIfdList() const override;
87};
88
89
90} // namespace governikus
Definition IfdDescriptor.h:24
Definition IfdList.h:21
bool isEqual(const IfdListEntry *const pOther) const
Definition IfdList.cpp:102
void setIfdDescriptor(const IfdDescriptor &pIfdDescriptor)
Definition IfdList.cpp:90
void setLastSeenToNow()
Definition IfdList.cpp:47
int getPercentSeen(int pCheckInterval=1000, int pTimeFrame=5000) const
Definition IfdList.cpp:78
const QTime & getLastSeen() const
Definition IfdList.cpp:110
bool containsEquivalent(const IfdDescriptor &pIfdDescriptor) const
Definition IfdList.cpp:96
const IfdDescriptor & getIfdDescriptor() const
Definition IfdList.cpp:116
bool cleanUpSeenTimestamps(int pReaderResponsiveTimeout)
Definition IfdList.cpp:58
Definition IfdList.h:69
void clear() override
Definition IfdList.cpp:172
void update(const IfdDescriptor &pDescriptor) override
Definition IfdList.cpp:146
~IfdListImpl() override
Definition IfdList.cpp:140
QVector< QSharedPointer< IfdListEntry > > getIfdList() const override
Definition IfdList.cpp:183
Definition IfdList.h:49
void fireDeviceAppeared(const QSharedPointer< IfdListEntry > &)
virtual void update(const IfdDescriptor &pDescriptor)=0
virtual void clear()=0
void fireDeviceUpdated(const QSharedPointer< IfdListEntry > &)
virtual QVector< QSharedPointer< IfdListEntry > > getIfdList() const
Definition IfdList.cpp:122
void fireDeviceVanished(const QSharedPointer< IfdListEntry > &)
~IfdList() override=default
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:16