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
governikus::RemoteDeviceListImpl::clear
virtual void clear() override
Definition: RemoteDeviceList.cpp:178
governikus::RemoteDeviceList::fireDeviceVanished
void fireDeviceVanished(const QSharedPointer< RemoteDeviceListEntry > &)
Definition: moc_RemoteDeviceList.cpp:169
governikus::RemoteDeviceList::fireDeviceAppeared
void fireDeviceAppeared(const QSharedPointer< RemoteDeviceListEntry > &)
Definition: moc_RemoteDeviceList.cpp:155
governikus::RemoteDeviceDescriptor
Definition: RemoteDeviceDescriptor.h:22
governikus::RemoteDeviceListEntry::setLastSeenToNow
void setLastSeenToNow()
Definition: RemoteDeviceList.cpp:47
governikus::RemoteDeviceListImpl
Definition: RemoteDeviceList.h:65
Initializer.h
governikus::createNewObject< RemoteDeviceList *, int, int >
RemoteDeviceList * createNewObject< RemoteDeviceList *, int, int >(int &&pCheckInterval, int &&pTimeout)
Definition: RemoteDeviceList.cpp:30
governikus::RemoteDeviceList::~RemoteDeviceList
virtual ~RemoteDeviceList()
Definition: RemoteDeviceList.cpp:121
governikus::RemoteDeviceListEntry
Definition: RemoteDeviceList.h:19
governikus::RemoteDeviceListImpl::update
virtual void update(const RemoteDeviceDescriptor &pDescriptor) override
Definition: RemoteDeviceList.cpp:150
governikus::RemoteDeviceListEntry::RemoteDeviceListEntry
RemoteDeviceListEntry(const RemoteDeviceDescriptor &pRemoteDeviceDescriptor)
Definition: RemoteDeviceList.cpp:39
RemoteDeviceList.h
governikus::RemoteDeviceListEntry::isEqual
bool isEqual(const RemoteDeviceListEntry *const pOther) const
Definition: RemoteDeviceList.cpp:96
RemoteDeviceDescriptor.h
governikus
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
governikus::RemoteDeviceList::getRemoteDevices
virtual QVector< QSharedPointer< RemoteDeviceListEntry > > getRemoteDevices() const
Definition: RemoteDeviceList.cpp:126
governikus::RemoteDeviceList::clear
virtual void clear()=0
Env.h
governikus::RemoteDeviceListImpl::getRemoteDevices
virtual QVector< QSharedPointer< RemoteDeviceListEntry > > getRemoteDevices() const override
Definition: RemoteDeviceList.cpp:189
governikus::createNewObject< RemoteDeviceList * >
RemoteDeviceList * createNewObject< RemoteDeviceList * >()
Definition: RemoteDeviceList.cpp:24
governikus::RemoteDeviceListImpl::~RemoteDeviceListImpl
virtual ~RemoteDeviceListImpl() override
Definition: RemoteDeviceList.cpp:144
governikus::RemoteDeviceListEntry::cleanUpSeenTimestamps
bool cleanUpSeenTimestamps(int pReaderResponsiveTimeout)
Definition: RemoteDeviceList.cpp:58
governikus::Initializer::Entry
Definition: Initializer.h:31
governikus::RemoteDeviceList
Definition: RemoteDeviceList.h:45
governikus::RemoteDeviceListEntry::getLastSeen
const QTime & getLastSeen() const
Definition: RemoteDeviceList.cpp:104
governikus::RemoteDeviceList::RemoteDeviceList
RemoteDeviceList(int pCheckInterval, int pTimeout)
Definition: RemoteDeviceList.cpp:116
governikus::RemoteDeviceListEntry::containsEquivalent
bool containsEquivalent(const RemoteDeviceDescriptor &pRemoteDeviceDescriptor) const
Definition: RemoteDeviceList.cpp:90
governikus::RemoteDeviceList::update
virtual void update(const RemoteDeviceDescriptor &pDescriptor)=0
governikus::RemoteDeviceListImpl::RemoteDeviceListImpl
RemoteDeviceListImpl(int pCheckInterval=1000, int pReaderResponsiveTimeout=5000)
Definition: RemoteDeviceList.cpp:132
governikus::RemoteDeviceListEntry::getPercentSeen
int getPercentSeen(int pCheckInterval=1000, int pTimeFrame=5000) const
Definition: RemoteDeviceList.cpp:78
governikus::RemoteDeviceDescriptor::isEquivalent
bool isEquivalent(const RemoteDeviceDescriptor &pOther) const
Definition: RemoteDeviceDescriptor.cpp:147
governikus::RemoteDeviceList::fireDeviceUpdated
void fireDeviceUpdated(const QSharedPointer< RemoteDeviceListEntry > &)
Definition: moc_RemoteDeviceList.cpp:162
governikus::RemoteDeviceListEntry::getRemoteDeviceDescriptor
const RemoteDeviceDescriptor & getRemoteDeviceDescriptor() const
Definition: RemoteDeviceList.cpp:110