AusweisApp2/src/remote_device/RemoteConnector.h

47 lines
1.1 KiB
C++

/*!
* \brief Module that creates and manages connections from a remote client to a remote server.
*
* \copyright Copyright (c) 2017-2019 Governikus GmbH & Co. KG, Germany
*/
#pragma once
#include "EnumHelper.h"
#include "messages/RemoteMessage.h"
#include "RemoteDeviceDescriptor.h"
#include "RemoteDispatcherClient.h"
#include <QObject>
namespace governikus
{
defineEnumType(RemoteErrorCode,
INVALID_REQUEST,
NO_SUPPORTED_API_LEVEL,
CONNECTION_TIMEOUT,
CONNECTION_ERROR,
REMOTE_HOST_REFUSED_CONNECTION)
class RemoteConnector
: public QObject
{
Q_OBJECT
public:
RemoteConnector();
virtual ~RemoteConnector() = default;
static GlobalStatus errorToGlobalStatus(RemoteErrorCode pDeviceError);
public Q_SLOTS:
virtual void onConnectRequest(const RemoteDeviceDescriptor& pRemoteDeviceDescriptor, const QString& pPsk) = 0;
Q_SIGNALS:
void fireRemoteDispatcherCreated(const RemoteDeviceDescriptor& pRemoteDeviceDescriptor, const QSharedPointer<RemoteDispatcherClient>& pClientDispatcher);
void fireRemoteDispatcherError(const RemoteDeviceDescriptor& pRemoteDeviceDescriptor, RemoteErrorCode pErrorCode);
};
} // namespace governikus