#ifndef PROTOCOLCONFIG_H #define PROTOCOLCONFIG_H #include #include #include class OpenVpnProtocolConfig; class WireGuardProtocolConfig; class ShadowsocksProtocolConfig; class CloakProtocolConfig; class XrayProtocolConfig; class AwgProtocolConfig; using ProtocolConfigVariant = std::variant, QSharedPointer, QSharedPointer, QSharedPointer, QSharedPointer, QSharedPointer >; class ProtocolConfig { public: ProtocolConfig(const QString &protocolName); virtual QJsonObject toJson() const; static ProtocolConfigVariant getProtocolConfigVariant(const QSharedPointer &protocolConfig); bool isServerSettingsEqual(const QSharedPointer &protocolConfig); QString protocolName; }; #endif // PROTOCOLCONFIG_H