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