NetTunnelWindows/NetTunnelSDK/protocol.h

121 lines
4.0 KiB
C
Raw Normal View History

#pragma once
#include "ProtocolBase.h"
class ReqClientCfgParams {
public:
std::string identifier;
AIGC_JSON_HELPER(identifier)
};
class ReqHeartParams {
public:
std::string message;
AIGC_JSON_HELPER(message)
AIGC_JSON_HELPER_DEFAULT(message = TEXT("PING"))
};
class RspHeartParams : public ResponseStatus {
public:
std::string message;
AIGC_JSON_HELPER(message)
AIGC_JSON_HELPER_BASE((ResponseStatus *)this)
AIGC_JSON_HELPER_DEFAULT(message = TEXT("PONG"))
};
class ReqGetUserCfgParams {
public:
std::string user;
std::string token;
AIGC_JSON_HELPER(user, token)
};
class RspUserSevrCfgParams {
public:
int svrListenPort;
std::string svrPrivateKey;
std::string svrAddress;
AIGC_JSON_HELPER(svrListenPort, svrPrivateKey, svrAddress)
};
class ReqStartTunnelParams {
public:
bool isStart;
AIGC_JSON_HELPER(isStart)
};
class ReqUserSetCliCfgParams {
public:
std::string cliPublicKey;
std::string cliNetwork;
std::string cliTunnelAddr;
AIGC_JSON_HELPER(cliPublicKey, cliNetwork, cliTunnelAddr)
};
class VitrualMathineCfg {
public:
int vmId;
std::string vmName;
std::string svrPublicKey;
std::string vmNetwork;
std::string scgGateway;
AIGC_JSON_HELPER(vmId, vmName, svrPublicKey, vmNetwork, scgGateway)
};
class RspUsrCliConfigParams {
public:
int scgCtrlAppId;
int scgTunnelAppId;
std::string cliPrivateKey;
std::string cliPublicKey;
std::string cliAddress;
std::list<VitrualMathineCfg> vmConfig;
AIGC_JSON_HELPER(scgCtrlAppId, scgTunnelAppId, cliPrivateKey, cliPublicKey, cliAddress, vmConfig)
};
#define GET_CLIENTCFG_PATH TEXT("/tunnel/getuserconfig")
#define GET_SERVERCFG_PATH TEXT("/tunnel/getserverconfig")
#define SET_CLIENTCFG_PATH TEXT("/tunnel/setconfig")
#define SET_CLIENTSTART_TUNNEL TEXT("/tunnel/start")
#define SET_CLIENTHEART_PATH TEXT("/tunnel/heart")
int InitControlServer(const TCHAR *pUserSvrUrl);
template<class T1, class T2>
int ProtolPostMessage(const TCHAR *pUrlPath,
ProtocolRequest<T1> *pReq,
ProtocolResponse<T2> *pRsp,
bool platformServer = true);
extern template int ProtolPostMessage(const TCHAR *pUrlPath,
ProtocolRequest<ReqGetUserCfgParams> *pReq,
ProtocolResponse<RspUserSevrCfgParams> *pRsp,
bool platformServer);
extern template int ProtolPostMessage(const TCHAR *pUrlPath,
ProtocolRequest<ReqGetUserCfgParams> *pReq,
ProtocolResponse<RspUsrCliConfigParams> *pRsp,
bool platformServer);
extern template int ProtolPostMessage(const TCHAR *pUrlPath,
ProtocolRequest<ReqUserSetCliCfgParams> *pReq,
ProtocolResponse<ResponseStatus> *pRsp,
bool platformServer);
extern template int ProtolPostMessage(const TCHAR *pUrlPath,
ProtocolRequest<ReqStartTunnelParams> *pReq,
ProtocolResponse<ResponseStatus> *pRsp,
bool platformServer);
extern template int ProtolPostMessage(const TCHAR *pUrlPath,
ProtocolRequest<ReqHeartParams> *pReq,
ProtocolResponse<RspHeartParams> *pRsp,
bool platformServer);