AusweisApp2/src/remote_device/RemoteConnectorImpl.h

43 lines
1.1 KiB
C
Raw Normal View History

2017-12-20 14:54:05 +01:00
/*!
* \brief Module that creates and manages connections from a remote client to a remote server.
*
2018-03-28 15:10:51 +02:00
* \copyright Copyright (c) 2017-2018 Governikus GmbH & Co. KG, Germany
2017-12-20 14:54:05 +01:00
*/
#pragma once
#include "RemoteConnector.h"
#include <QTimer>
#include <QWebSocket>
namespace governikus
{
class ConnectRequest;
class RemoteConnectorImpl
: public RemoteConnector
{
Q_OBJECT
private:
const int mConnectTimeoutMs;
QVector<QSharedPointer<ConnectRequest> > mPendingRequests;
void removeRequest(const RemoteDeviceDescriptor& pRemoteDeviceDescriptor);
private Q_SLOTS:
void onConnectionCreated(const RemoteDeviceDescriptor& pRemoteDeviceDescriptor, const QSharedPointer<QWebSocket>& pWebSocket);
void onConnectionError(const RemoteDeviceDescriptor& pRemoteDeviceDescriptor, const RemoteErrorCode& pError);
void onConnectionTimeout(const RemoteDeviceDescriptor& pRemoteDeviceDescriptor);
public:
RemoteConnectorImpl(int pConnectTimeoutMs = 5000);
virtual ~RemoteConnectorImpl() override = default;
virtual void onConnectRequest(const RemoteDeviceDescriptor& pRemoteDeviceDescriptor, const QString& pPsk) override;
};
} /* namespace governikus */