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  const RemoteDeviceDescriptor mRemoteDeviceDescriptor;
24  QTime mLastSeen;
25  QVector<QTime> mLastSeenHistory;
26 
27  public:
28  RemoteDeviceListEntry(const RemoteDeviceDescriptor& pRemoteDeviceDescriptor);
29 
30  void setLastSeenToNow();
31  bool cleanUpSeenTimestamps(int pReaderResponsiveTimeout);
32  int getPercentSeen(int pCheckInterval = 1000, int pTimeFrame = 5000) const;
33 
34  bool containsEquivalent(const RemoteDeviceDescriptor& pRemoteDeviceDescriptor) const;
35  bool isEqual(const RemoteDeviceListEntry* const pOther) const;
36 
37  const QTime& getLastSeen() const;
39 
40 };
41 
42 
44  : public QObject
45 {
46  Q_OBJECT
47 
48  Q_SIGNALS:
49  void fireDeviceAppeared(const QSharedPointer<RemoteDeviceListEntry>&);
50  void fireDeviceUpdated(const QSharedPointer<RemoteDeviceListEntry>&);
51  void fireDeviceVanished(const QSharedPointer<RemoteDeviceListEntry>&);
52 
53  public:
54  RemoteDeviceList(int pCheckInterval, int pTimeout);
55  virtual ~RemoteDeviceList();
56 
57  virtual void update(const RemoteDeviceDescriptor& pDescriptor) = 0;
58  virtual void clear() = 0;
59  virtual QVector<QSharedPointer<RemoteDeviceListEntry>> getRemoteDevices() const;
60 };
61 
62 
64  : public RemoteDeviceList
65 {
66  Q_OBJECT
67 
68  private:
69  QTimer mTimer;
70  const int mReaderResponsiveTimeout;
71  QVector<QSharedPointer<RemoteDeviceListEntry>> mResponsiveList;
72 
73  private Q_SLOTS:
74  void onProcessUnresponsiveRemoteReaders();
75 
76  public:
77  RemoteDeviceListImpl(int pCheckInterval = 1000, int pReaderResponsiveTimeout = 5000);
78  virtual ~RemoteDeviceListImpl() override;
79 
80  virtual void update(const RemoteDeviceDescriptor& pDescriptor) override;
81  virtual void clear() override;
82  virtual QVector<QSharedPointer<RemoteDeviceListEntry>> getRemoteDevices() const override;
83 };
84 
85 
86 } // namespace governikus
virtual void update(const RemoteDeviceDescriptor &pDescriptor)=0
virtual ~RemoteDeviceList()
Definition: RemoteDeviceList.cpp:121
Definition: RemoteDeviceList.h:18
void fireDeviceUpdated(const QSharedPointer< RemoteDeviceListEntry > &)
Definition: moc_RemoteDeviceList.cpp:161
Definition: RemoteDeviceDescriptor.h:21
void fireDeviceVanished(const QSharedPointer< RemoteDeviceListEntry > &)
Definition: moc_RemoteDeviceList.cpp:168
void fireDeviceAppeared(const QSharedPointer< RemoteDeviceListEntry > &)
Definition: moc_RemoteDeviceList.cpp:154
virtual void clear() override
Definition: RemoteDeviceList.cpp:178
virtual ~RemoteDeviceListImpl() override
Definition: RemoteDeviceList.cpp:144
const RemoteDeviceDescriptor & getRemoteDeviceDescriptor() const
Definition: RemoteDeviceList.cpp:110
bool cleanUpSeenTimestamps(int pReaderResponsiveTimeout)
Definition: RemoteDeviceList.cpp:58
virtual QVector< QSharedPointer< RemoteDeviceListEntry > > getRemoteDevices() const
Definition: RemoteDeviceList.cpp:126
virtual QVector< QSharedPointer< RemoteDeviceListEntry > > getRemoteDevices() const override
Definition: RemoteDeviceList.cpp:189
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:14
virtual void update(const RemoteDeviceDescriptor &pDescriptor) override
Definition: RemoteDeviceList.cpp:150
bool isEqual(const RemoteDeviceListEntry *const pOther) const
Definition: RemoteDeviceList.cpp:96
RemoteDeviceListImpl(int pCheckInterval=1000, int pReaderResponsiveTimeout=5000)
Definition: RemoteDeviceList.cpp:132
Definition: RemoteDeviceList.h:43
Definition: RemoteDeviceList.h:63
bool containsEquivalent(const RemoteDeviceDescriptor &pRemoteDeviceDescriptor) const
Definition: RemoteDeviceList.cpp:90
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:104
RemoteDeviceList(int pCheckInterval, int pTimeout)
Definition: RemoteDeviceList.cpp:116