amnezia-client/client/protocols/ios_vpnprotocol.h
Josh Soref 7351fe9633
Spelling (#214)
Spelling fixed
2023-04-11 14:50:44 +01:00

65 lines
1.7 KiB
C++

#ifndef IOS_VPNPROTOCOL_H
#define IOS_VPNPROTOCOL_H
#include "platforms/ios/json.h"
#include "vpnprotocol.h"
#include "protocols/protocols_defs.h"
using namespace amnezia;
class IOSVpnProtocol : public VpnProtocol
{
Q_OBJECT
public:
explicit IOSVpnProtocol(amnezia::Proto proto, const QJsonObject& configuration, QObject* parent = nullptr);
static IOSVpnProtocol* instance();
virtual ~IOSVpnProtocol() override = default;
bool initialize();
virtual ErrorCode start() override;
virtual void stop() override;
void resume_start();
void checkStatus();
void setNotificationText(const QString& title, const QString& message,
int timerSec);
void setFallbackConnectedNotification();
void getBackendLogs(std::function<void(const QString&)>&& callback);
void cleanupBackendLogs();
signals:
void newTransmittedDataCount(quint64 rxBytes, quint64 txBytes);
protected slots:
protected:
private:
Proto m_protocol;
bool m_serviceConnected = false;
bool m_checkingStatus = false;
std::function<void(const QString&)> m_logCallback;
bool m_isChangingState = false;
void setupWireguardProtocol(const QtJson::JsonObject& result);
void setupOpenVPNProtocol(const QtJson::JsonObject& result);
void setupShadowSocksProtocol(const QtJson::JsonObject& result);
void launchWireguardTunnel(const QtJson::JsonObject &result);
void launchOpenVPNTunnel(const QtJson::JsonObject &result);
void launchShadowSocksTunnel(const QtJson::JsonObject &result);
QString serializeSSConfig(const QtJson::JsonObject &ssConfig);
};
#endif // IOS_VPNPROTOCOL_H