1 /*!
2  * \copyright Copyright (c) 2017-2021 Governikus GmbH & Co. KG, Germany
3  */
4 
5 #pragma once
6 
7 #include "ReaderInfo.h"
8 #include "RemoteMessage.h"
9 
10 #include <QJsonObject>
11 
12 
13 namespace governikus
14 {
15 class MockRemoteDispatcher;
16 
17 class IfdStatus
18 	: public RemoteMessage
19 {
20 	private:
21 		QString mSlotName;
22 		bool mHasPinPad;
23 		int mMaxApduLength;
24 		bool mConnectedReader;
25 		bool mCardAvailable;
26 
27 		[[nodiscard]] QJsonValue createPaceCapabilities() const;
28 		void parsePinPad(const QJsonObject& pMessageObject);
29 
30 	public:
31 		explicit IfdStatus(const ReaderInfo& pReaderInfo);
32 		explicit IfdStatus(const QJsonObject& pMessageObject);
33 		~IfdStatus() override = default;
34 
35 		[[nodiscard]] const QString& getSlotName() const;
36 		[[nodiscard]] bool hasPinPad() const;
37 		[[nodiscard]] int getMaxApduLength() const;
38 		[[nodiscard]] bool getConnectedReader() const;
39 		[[nodiscard]] bool getCardAvailable() const;
40 		[[nodiscard]] QByteArray toByteArray(const IfdVersion& pIfdVersion, const QString& pContextHandle) const override;
41 };
42 
43 
44 } // namespace governikus
45