AusweisApp2
ServerMessageHandler.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
10 #include "CardConnection.h"
11 #include "DataChannel.h"
13 #include "messages/IfdModifyPin.h"
14 #include "ReaderManager.h"
15 #include "RemoteDispatcherServer.h"
16 
17 #include <QMap>
18 #include <QScopedPointer>
19 #include <QSharedPointer>
20 
21 
22 namespace governikus
23 {
24 
26  : public QObject
27 {
28  Q_OBJECT
29 
30  protected:
31  ServerMessageHandler() = default;
32 
33  public:
34  ~ServerMessageHandler() override;
35 
36  virtual void sendEstablishPaceChannelResponse(const QString& pSlotHandle, const EstablishPaceChannelOutput&) = 0;
37  virtual void sendModifyPinResponse(const QString& pSlotHandle, const ResponseApdu& pResponseApdu) = 0;
38 
39  Q_SIGNALS:
40  void fireCardConnectionEstablished(const QSharedPointer<CardConnection>& pConnection);
41  void fireEstablishPaceChannel(const QSharedPointer<const IfdEstablishPaceChannel>& pMessage, const QSharedPointer<CardConnection>& pConnection);
42  void fireModifyPin(const QSharedPointer<const IfdModifyPin>& pMessage, const QSharedPointer<CardConnection>& pConnection);
43  void fireClosed();
45 };
46 
47 
49  : public ServerMessageHandler
50 {
51  Q_OBJECT
52 
53  private:
54  QPointer<ReaderManager> mReaderManager;
55  const QSharedPointer<RemoteDispatcherServer> mRemoteDispatcher;
56  QMap<QString, QSharedPointer<CardConnection>> mCardConnections;
57 
58  [[nodiscard]] QString slotHandleForReaderName(const QString& pReaderName) const;
59 
60  void handleIfdGetStatus(const QJsonObject& pJsonObject);
61  void handleIfdConnect(const QJsonObject& pJsonObject);
62  void handleIfdDisconnect(const QJsonObject& pJsonObject);
63  void handleIfdTransmit(const QJsonObject& pJsonObject);
64  void handleIfdEstablishPaceChannel(const QJsonObject& pJsonObject);
65  void handleIfdModifyPIN(const QJsonObject& pJsonObject);
66 
67  private Q_SLOTS:
68  void onCreateCardConnectionCommandDone(QSharedPointer<CreateCardConnectionCommand> pCommand);
69  void onTransmitCardCommandDone(QSharedPointer<BaseCardCommand> pCommand);
70  void onClosed();
71  void onRemoteMessage(RemoteCardMessageType pMessageType, const QJsonObject& pJsonObject);
72  void onReaderChanged(const ReaderInfo& pInfo);
73  void onReaderRemoved(const ReaderInfo& pInfo);
74 
75  public:
76  explicit ServerMessageHandlerImpl(const QSharedPointer<DataChannel>& pDataChannel);
77 
78  void sendEstablishPaceChannelResponse(const QString& pSlotHandle, const EstablishPaceChannelOutput& pChannelOutput) override;
79  void sendModifyPinResponse(const QString& pSlotHandle, const ResponseApdu& pResponseApdu) override;
80 };
81 
82 
83 } // namespace governikus
Definition: EstablishPaceChannelOutput.h:48
Definition: ReaderInfo.h:17
Definition: ResponseApdu.h:82
Definition: ServerMessageHandler.h:50
void sendModifyPinResponse(const QString &pSlotHandle, const ResponseApdu &pResponseApdu) override
Definition: ServerMessageHandler.cpp:311
void sendEstablishPaceChannelResponse(const QString &pSlotHandle, const EstablishPaceChannelOutput &pChannelOutput) override
Definition: ServerMessageHandler.cpp:265
ServerMessageHandlerImpl(const QSharedPointer< DataChannel > &pDataChannel)
Definition: ServerMessageHandler.cpp:47
Definition: ServerMessageHandler.h:27
void fireModifyPin(const QSharedPointer< const IfdModifyPin > &pMessage, const QSharedPointer< CardConnection > &pConnection)
void fireCardConnectionEstablished(const QSharedPointer< CardConnection > &pConnection)
~ServerMessageHandler() override
Definition: ServerMessageHandler.cpp:42
virtual void sendModifyPinResponse(const QString &pSlotHandle, const ResponseApdu &pResponseApdu)=0
void fireEstablishPaceChannel(const QSharedPointer< const IfdEstablishPaceChannel > &pMessage, const QSharedPointer< CardConnection > &pConnection)
virtual void sendEstablishPaceChannelResponse(const QString &pSlotHandle, const EstablishPaceChannelOutput &)=0
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15