1 /*!
2  * \brief Implementation of \ref Reader for smartphone as card reader (SaC).
3  *
4  * \copyright Copyright (c) 2017-2021 Governikus GmbH & Co. KG, Germany
5  */
6 
7 #pragma once
8 
9 #include "messages/IfdStatus.h"
10 #include "Reader.h"
11 #include "RemoteCard.h"
12 #include "RemoteDispatcherClient.h"
13 
14 #include <QScopedPointer>
15 #include <QSharedPointer>
16 
17 
18 namespace governikus
19 {
20 
21 class RemoteReader
22 	: public Reader
23 {
24 	Q_OBJECT
25 
26 	private:
27 		QScopedPointer<RemoteCard, QScopedPointerDeleteLater> mCard;
28 		const QSharedPointer<RemoteDispatcherClient> mRemoteDispatcher;
29 
30 		CardEvent updateCard() override;
31 
32 	public:
33 		RemoteReader(const QString& pReaderName, const QSharedPointer<RemoteDispatcherClient>& pRemoteDispatcher, const IfdStatus& pIfdStatus);
34 		~RemoteReader() override;
35 
36 		[[nodiscard]] Card* getCard() const override;
37 
38 		void updateStatus(const IfdStatus& pIfdStatus);
39 };
40 
41 } // namespace governikus
42