AusweisApp2
Lade ...
Suche ...
Keine Treffer
RemoteDeviceList.h
gehe zur Dokumentation dieser Datei
1
7#pragma once
8
10
11#include <QTime>
12#include <QTimer>
13
14
15namespace governikus
16{
17
19{
20 Q_DISABLE_COPY(RemoteDeviceListEntry)
21
22 private:
23 RemoteDeviceDescriptor mRemoteDeviceDescriptor;
24 QTime mLastSeen;
25 QVector<QTime> mLastSeenHistory;
26
27 public:
28 explicit RemoteDeviceListEntry(const RemoteDeviceDescriptor& pRemoteDeviceDescriptor);
29
30 void setLastSeenToNow();
31 bool cleanUpSeenTimestamps(int pReaderResponsiveTimeout);
32 [[nodiscard]] int getPercentSeen(int pCheckInterval = 1000, int pTimeFrame = 5000) const;
33
34 void setRemoteDeviceDescriptor(const RemoteDeviceDescriptor& pRemoteDeviceDescriptor);
35
36 [[nodiscard]] bool containsEquivalent(const RemoteDeviceDescriptor& pRemoteDeviceDescriptor) const;
37 bool isEqual(const RemoteDeviceListEntry* const pOther) const;
38
39 [[nodiscard]] const QTime& getLastSeen() const;
40 [[nodiscard]] const RemoteDeviceDescriptor& getRemoteDeviceDescriptor() const;
41
42};
43
44
46 : public QObject
47{
48 Q_OBJECT
49
50 Q_SIGNALS:
51 void fireDeviceAppeared(const QSharedPointer<RemoteDeviceListEntry>&);
52 void fireDeviceUpdated(const QSharedPointer<RemoteDeviceListEntry>&);
53 void fireDeviceVanished(const QSharedPointer<RemoteDeviceListEntry>&);
54
55 public:
56 RemoteDeviceList(int pCheckInterval, int pTimeout);
57 ~RemoteDeviceList() override;
58
59 virtual void update(const RemoteDeviceDescriptor& pDescriptor) = 0;
60 virtual void clear() = 0;
61 [[nodiscard]] virtual QVector<QSharedPointer<RemoteDeviceListEntry>> getRemoteDevices() const;
62};
63
64
66 : public RemoteDeviceList
67{
68 Q_OBJECT
69
70 private:
71 QTimer mTimer;
72 const int mReaderResponsiveTimeout;
73 QVector<QSharedPointer<RemoteDeviceListEntry>> mResponsiveList;
74
75 private Q_SLOTS:
76 void onProcessUnresponsiveRemoteReaders();
77
78 public:
79 RemoteDeviceListImpl(int pCheckInterval = 1000, int pReaderResponsiveTimeout = 5000);
80 ~RemoteDeviceListImpl() override;
81
82 void update(const RemoteDeviceDescriptor& pDescriptor) override;
83 void clear() override;
84 [[nodiscard]] QVector<QSharedPointer<RemoteDeviceListEntry>> getRemoteDevices() const override;
85};
86
87
88} // namespace governikus
Definition: RemoteDeviceDescriptor.h:22
Definition: RemoteDeviceList.h:19
void setRemoteDeviceDescriptor(const RemoteDeviceDescriptor &pRemoteDeviceDescriptor)
Definition: RemoteDeviceList.cpp:90
bool isEqual(const RemoteDeviceListEntry *const pOther) const
Definition: RemoteDeviceList.cpp:102
bool cleanUpSeenTimestamps(int pReaderResponsiveTimeout)
Definition: RemoteDeviceList.cpp:58
void setLastSeenToNow()
Definition: RemoteDeviceList.cpp:47
int getPercentSeen(int pCheckInterval=1000, int pTimeFrame=5000) const
Definition: RemoteDeviceList.cpp:78
const RemoteDeviceDescriptor & getRemoteDeviceDescriptor() const
Definition: RemoteDeviceList.cpp:116
bool containsEquivalent(const RemoteDeviceDescriptor &pRemoteDeviceDescriptor) const
Definition: RemoteDeviceList.cpp:96
const QTime & getLastSeen() const
Definition: RemoteDeviceList.cpp:110
Definition: RemoteDeviceList.h:67
void update(const RemoteDeviceDescriptor &pDescriptor) override
Definition: RemoteDeviceList.cpp:156
QVector< QSharedPointer< RemoteDeviceListEntry > > getRemoteDevices() const override
Definition: RemoteDeviceList.cpp:193
~RemoteDeviceListImpl() override
Definition: RemoteDeviceList.cpp:150
void clear() override
Definition: RemoteDeviceList.cpp:182
Definition: RemoteDeviceList.h:47
void fireDeviceUpdated(const QSharedPointer< RemoteDeviceListEntry > &)
virtual QVector< QSharedPointer< RemoteDeviceListEntry > > getRemoteDevices() const
Definition: RemoteDeviceList.cpp:132
void fireDeviceVanished(const QSharedPointer< RemoteDeviceListEntry > &)
~RemoteDeviceList() override
Definition: RemoteDeviceList.cpp:127
void fireDeviceAppeared(const QSharedPointer< RemoteDeviceListEntry > &)
virtual void update(const RemoteDeviceDescriptor &pDescriptor)=0
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15