mirror of
https://github.com/Qv2ray/Qv2ray.git
synced 2025-05-19 02:10:28 +08:00
64 lines
2.6 KiB
C++
64 lines
2.6 KiB
C++
#pragma once
|
|
#include "base/Qv2rayBase.hpp"
|
|
#include "core/CoreSafeTypes.hpp"
|
|
|
|
namespace Qv2ray::core::connection
|
|
{
|
|
namespace Serialization
|
|
{
|
|
/**
|
|
* pattern for the nodes in ssd links.
|
|
* %1: airport name
|
|
* %2: node name
|
|
* %3: rate
|
|
*/
|
|
inline auto QV2RAY_SSD_DEFAULT_NAME_PATTERN = QObject::tr("%1 - %2 (rate %3)");
|
|
//
|
|
// General
|
|
QString DecodeSubscriptionString(QByteArray arr);
|
|
CONFIGROOT ConvertConfigFromString(const QString &link, QString *alias, QString *errMessage);
|
|
const QString ConvertConfigToString(const ConnectionId &id, bool isSip002 = false);
|
|
//
|
|
// VMess URI Protocol
|
|
namespace vmess
|
|
{
|
|
CONFIGROOT ConvertConfigFromVMessString(const QString &vmess, QString *alias, QString *errMessage);
|
|
const QString ConvertConfigToVMessString(const StreamSettingsObject &transfer, const VMessServerObject &server,
|
|
const QString &alias);
|
|
} // namespace vmess
|
|
//
|
|
// SS URI Protocol
|
|
namespace ss
|
|
{
|
|
CONFIGROOT ConvertConfigFromSSString(const QString &ss, QString *alias, QString *errMessage);
|
|
const QString ConvertConfigToSSString(const ShadowSocksServerObject &server, const QString &alias, bool isSip002);
|
|
} // namespace ss
|
|
//
|
|
// SSD URI Protocol
|
|
namespace ssd
|
|
{
|
|
/**
|
|
* @brief decodeSSD
|
|
* @param uri the uri of ssd link.
|
|
* @param pattern the pattern for node names.
|
|
* @return tuple of:
|
|
* - tuple of:
|
|
* - airport name (for the sake of grouping)
|
|
* - shadowsocks configuration list
|
|
* - log list
|
|
* in case of error, no objects will be returned.
|
|
*/
|
|
std::pair<std::optional<std::pair<QString, QList<std::pair<QString, ShadowSocksServerObject>>>>, QStringList> //
|
|
ConvertConfigFromSSDString(const QString &uri, const QString &pattern = QV2RAY_SSD_DEFAULT_NAME_PATTERN);
|
|
} // namespace ssd
|
|
//
|
|
} // namespace Serialization
|
|
} // namespace Qv2ray::core::connection
|
|
|
|
using namespace Qv2ray::core;
|
|
using namespace Qv2ray::core::connection;
|
|
using namespace Qv2ray::core::connection::Serialization;
|
|
using namespace Qv2ray::core::connection::Serialization::ss;
|
|
using namespace Qv2ray::core::connection::Serialization::ssd;
|
|
using namespace Qv2ray::core::connection::Serialization::vmess;
|