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