AusweisApp2
RemoteDeviceList.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
10 
11 #include <QTime>
12 #include <QTimer>
13 
14 
15 namespace 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
virtual void update(const RemoteDeviceDescriptor &pDescriptor)=0
Definition: RemoteDeviceList.h:18
void fireDeviceUpdated(const QSharedPointer< RemoteDeviceListEntry > &)
Definition: RemoteDeviceDescriptor.h:21
void fireDeviceVanished(const QSharedPointer< RemoteDeviceListEntry > &)
void fireDeviceAppeared(const QSharedPointer< RemoteDeviceListEntry > &)
void clear() override
Definition: RemoteDeviceList.cpp:182
~RemoteDeviceListImpl() override
Definition: RemoteDeviceList.cpp:150
const RemoteDeviceDescriptor & getRemoteDeviceDescriptor() const
Definition: RemoteDeviceList.cpp:116
bool cleanUpSeenTimestamps(int pReaderResponsiveTimeout)
Definition: RemoteDeviceList.cpp:58
virtual QVector< QSharedPointer< RemoteDeviceListEntry > > getRemoteDevices() const
Definition: RemoteDeviceList.cpp:132
~RemoteDeviceList() override
Definition: RemoteDeviceList.cpp:127
QVector< QSharedPointer< RemoteDeviceListEntry > > getRemoteDevices() const override
Definition: RemoteDeviceList.cpp:193
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:14
void update(const RemoteDeviceDescriptor &pDescriptor) override
Definition: RemoteDeviceList.cpp:156
bool isEqual(const RemoteDeviceListEntry *const pOther) const
Definition: RemoteDeviceList.cpp:102
RemoteDeviceListImpl(int pCheckInterval=1000, int pReaderResponsiveTimeout=5000)
Definition: RemoteDeviceList.cpp:138
Definition: RemoteDeviceList.h:45
void setRemoteDeviceDescriptor(const RemoteDeviceDescriptor &pRemoteDeviceDescriptor)
Definition: RemoteDeviceList.cpp:90
Definition: RemoteDeviceList.h:65
bool containsEquivalent(const RemoteDeviceDescriptor &pRemoteDeviceDescriptor) const
Definition: RemoteDeviceList.cpp:96
RemoteDeviceListEntry(const RemoteDeviceDescriptor &pRemoteDeviceDescriptor)
Definition: RemoteDeviceList.cpp:39
int getPercentSeen(int pCheckInterval=1000, int pTimeFrame=5000) const
Definition: RemoteDeviceList.cpp:78
void setLastSeenToNow()
Definition: RemoteDeviceList.cpp:47
const QTime & getLastSeen() const
Definition: RemoteDeviceList.cpp:110
RemoteDeviceList(int pCheckInterval, int pTimeout)
Definition: RemoteDeviceList.cpp:122