123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- #ifndef __TYPHOON_C__H__
- #define __TYPHOON_C__H__
- #include "uv.h"
- #include "YyAuthenticationManageFile.h"
- #include "TyphoonDefine.h"
- #ifdef __cplusplus
- extern "C"
- {
- #endif
- #ifdef _WIN32
- #ifdef DLL_IMPLEMENT
- #define TYPHOON_EXTERN __declspec(dllexport)
- #else
- #define TYPHOON_EXTERN __declspec(dllimport)
- #endif
- #else
- #define TYPHOON_EXTERN /* nothing */
- #endif
- /* TyPhoonConnCallBack 函数 */
- TYPHOON_EXTERN HTyPhoonConnCallBack CreateHTyPhoonConnCallBack(stTyPhoonConnCallBack *pCb);
- TYPHOON_EXTERN void DestroyHTyPhoonConnCallBack(HTyPhoonConnCallBack handle);
- TYPHOON_EXTERN void TyPhoonConnCallBack_SetPushData(HTyPhoonConnCallBack handle, int set);
- TYPHOON_EXTERN int TyPhoonConnCallBack_GetPushData();
- /* TyphoonChannel 相关函数 */
- TYPHOON_EXTERN int32_t TyphoonChannel_IsWritable(HTyphoonChannel handle);
- TYPHOON_EXTERN int32_t TyphoonChannel_Send(HTyphoonChannel handle, uint8_t* pData,int32_t len);
- TYPHOON_EXTERN int32_t TyphoonChannel_CompressSend(HTyphoonChannel handle, uint8_t* pData,int32_t len, uint8_t compressLevel);
- TYPHOON_EXTERN int32_t TyphoonChannel_SendWithExpiredTime(HTyphoonChannel handle, uint8_t* pData,int32_t len, uint32_t lifeTime);
- TYPHOON_EXTERN int32_t TyphoonChannel_SendWithMaxCount(HTyphoonChannel handle, uint8_t* pData,int32_t len, uint8_t maxCount);
- TYPHOON_EXTERN int32_t TyphoonChannel_SendWithAllFunction(HTyphoonChannel handle,
- uint8_t* pData,
- int32_t len,
- uint8_t compresLevel,
- uint32_t lifeTime,
- uint8_t maxSendCount,
- uint16_t fecPercent);
- TYPHOON_EXTERN HTyphoonBuff TyphoonChannel_Recv(HTyphoonChannel handle);
- TYPHOON_EXTERN int32_t TyphoonChannel_Close(HTyphoonChannel handle);
- TYPHOON_EXTERN int32_t TyphoonChannel_Shutdown(HTyphoonChannel handle);
- TYPHOON_EXTERN void TyphoonChannel_SetUserData(HTyphoonChannel handle, uint64_t Data);
- TYPHOON_EXTERN uint64_t TyphoonChannel_GetUserData(HTyphoonChannel handle);
- TYPHOON_EXTERN void TyphoonChannel_EnableWritableWatch(HTyphoonChannel handle);
- TYPHOON_EXTERN void TyphoonChannel_DisableWritableWatch(HTyphoonChannel handle);
- TYPHOON_EXTERN uint8_t TyphoonChannel_GetWritableWatch(HTyphoonChannel handle);
- TYPHOON_EXTERN uint8_t TyphoonChannel_GetWritableWatch(HTyphoonChannel handle);
- TYPHOON_EXTERN int64_t TyphoonChannel_GetUnackedDataLength(HTyphoonChannel handle);
- TYPHOON_EXTERN uint16_t TyphoonChannel_ChannelId(HTyphoonChannel handle);
- TYPHOON_EXTERN void TyphoonChannel_ShowChannel(HTyphoonChannel handle);
- TYPHOON_EXTERN int TyphoonChannel_OpenByClient(HTyphoonChannel handle);
- TYPHOON_EXTERN int TyphoonChannel_OpenByServer(HTyphoonChannel handle);
- TYPHOON_EXTERN int TyphoonChannel_OpenBySelf(HTyphoonChannel handle);
- /* TyphoonFecTun 函数 */
- TYPHOON_EXTERN int32_t TyphoonFecTun_Close(HTyphoonFecTun Tun);
- TYPHOON_EXTERN uint16_t TyphoonFecTun_TunnelId(HTyphoonFecTun Tun);
- /* TyphoonConn 函数 */
- TYPHOON_EXTERN HTyphoonConn CreateHTyphoonConn(HTyphoon handle);
- TYPHOON_EXTERN void DestroyHTyphoonConn(HTyphoonConn handle);
- TYPHOON_EXTERN int32_t TyphoonConn_ConnectTo(HTyphoonConn handle, char *ip, uint16_t port, int sync, uint8_t *data, uint16_t data_len);
- TYPHOON_EXTERN int32_t TyphoonConn_ConnectToEx(HTyphoonConn handle, char *ip, uint16_t port, char *bind_ip, uint16_t bind_port,int sync, uint8_t *data, uint16_t data_len);
- TYPHOON_EXTERN int32_t TyphoonConn_IsConnected(HTyphoonConn handle);
- TYPHOON_EXTERN HTyphoonChannel TyphoonConn_OpenChannel(HTyphoonConn handle);
- TYPHOON_EXTERN void TyphoonConn_SetTimeout(HTyphoonConn handle, stTyphoonTimerConfig *pCfg);
- TYPHOON_EXTERN stTyphoonTimerConfig TyphoonConn_GetTimeout(HTyphoonConn handle);
- TYPHOON_EXTERN uint16_t TyphoonConn_QueryChannelCount(HTyphoonConn handle);
- TYPHOON_EXTERN void TyphoonConn_SetMaxSegmentSize(HTyphoonConn handle, uint16_t Mss);
- TYPHOON_EXTERN uint16_t TyphoonConn_GetMaxSegmentSize(HTyphoonConn handle);
- TYPHOON_EXTERN uint16_t TyphoonConn_QueryMaxSegmentSize(HTyphoonConn handle);
- TYPHOON_EXTERN void TyphoonConn_SetUserData(HTyphoonConn handle, uint64_t Data);
- TYPHOON_EXTERN uint64_t TyphoonConn_GetUserData(HTyphoonConn handle);
- TYPHOON_EXTERN void TyphoonConn_SetSendBuffSize(HTyphoonConn handle, uint32_t Size);
- TYPHOON_EXTERN uint32_t TyphoonConn_GetSendBuffSize(HTyphoonConn handle);
- TYPHOON_EXTERN void TyphoonConn_SetRecvBuffSize(HTyphoonConn handle, uint32_t Size);
- TYPHOON_EXTERN uint32_t TyphoonConn_GetRecvBuffSize(HTyphoonConn handle);
- TYPHOON_EXTERN void TyphoonConn_SetConnCallback(HTyphoonConn handle, HTyPhoonConnCallBack cb);
- TYPHOON_EXTERN HTyPhoonConnCallBack TyphoonConn_GetConnCallback(HTyphoonConn handle);
- TYPHOON_EXTERN void TyphoonConn_SetFixedSendSpeed(HTyphoonConn handle, uint32_t Size);
- TYPHOON_EXTERN uint32_t TyphoonConn_GetFixedSendSpeed(HTyphoonConn handle);
- TYPHOON_EXTERN void TyphoonConn_SetMaxSendSpeed(HTyphoonConn handle, uint32_t Size);
- TYPHOON_EXTERN uint32_t TyphoonConn_GetMaxSendSpeed(HTyphoonConn handle);
- TYPHOON_EXTERN void TyphoonConn_SetMinSendSpeed(HTyphoonConn handle, uint32_t Size);
- TYPHOON_EXTERN uint32_t TyphoonConn_GetMinSendSpeed(HTyphoonConn handle);
- TYPHOON_EXTERN void TyphoonConn_TraverseChannels(HTyphoonConn handle, TyphonnConn_TraverseChannels_Cb_C traverse_cb, void* arg);
- TYPHOON_EXTERN uint32_t TyphoonConn_QueryRTT(HTyphoonConn handle);
- TYPHOON_EXTERN uint32_t TyphoonConn_QueryDropRate(HTyphoonConn handle);
- TYPHOON_EXTERN HTyphoonChannel TyphoonConn_GetDefaultChannel(HTyphoonConn handle);
- TYPHOON_EXTERN int32_t TyphoonConn_GetMaxAuthSendSpeed(HTyphoonConn handle);
- TYPHOON_EXTERN void TyphoonConn_SetCompress(HTyphoonConn handle, uint8_t CompressMethod);
- TYPHOON_EXTERN uint32_t TyphoonConn_GetCompress(HTyphoonConn handle);
- TYPHOON_EXTERN void TyphoonConn_SetAuth(HTyphoonConn handle, sTyphoonProxyLicense *license);
- TYPHOON_EXTERN HTyphoonChannel TyphoonConn_GetChannel(HTyphoonConn handle, uint16_t cid);
- TYPHOON_EXTERN uint32_t TyphoonConn_QueryPeerRTT(HTyphoonConn handle);
- TYPHOON_EXTERN uint32_t TyphoonConn_QueryPeerDropRate(HTyphoonConn handle);
- TYPHOON_EXTERN TyphoonConnStats *TyphoonConn_GetStats(HTyphoonConn handle);
- TYPHOON_EXTERN void TyphoonConn_GetWanAddr(HTyphoonConn handle, struct sockaddr *addr);
- TYPHOON_EXTERN void TyphoonConn_GetRemoteAddr(HTyphoonConn handle, struct sockaddr *addr);
- TYPHOON_EXTERN uint32_t TyphoonConn_GetCurSendSpeed(HTyphoonConn handle);
- TYPHOON_EXTERN int TyphoonConn_IsClient(HTyphoonConn handle);
- TYPHOON_EXTERN int TyphoonConn_IsServer(HTyphoonConn handle);
- TYPHOON_EXTERN uint8_t TyphoonConn_GetTransferMode(HTyphoonConn handle);
- TYPHOON_EXTERN uint8_t TyphoonConn_SetTransferMode(HTyphoonConn handle);
- TYPHOON_EXTERN void TyphoonConn_SetPacketLoss(HTyphoonConn handle, uint16_t percent);
- TYPHOON_EXTERN int TyphoonConn_IsPacketLossSet(HTyphoonConn handle);
- TYPHOON_EXTERN int TyphoonConn_GetPacketLoss(HTyphoonConn handle);
- TYPHOON_EXTERN HTyphoonFecTun TyphoonConn_OpenFecTun(HTyphoonConn handle, uint16_t channelCount);
- TYPHOON_EXTERN void TyphoonConn_CloseFecTun(HTyphoonConn handle, uint16_t tunId);
- /* Typhoon 函数 */
- TYPHOON_EXTERN HTyphoon CreateHTyphoon(const char *pLicensePath, const char *pLicenseAddr, int licensePort, int logId);
- TYPHOON_EXTERN void DestroyHTyphoon(HTyphoon handle);
- TYPHOON_EXTERN int Typhoon_ActiveLicense(HTyphoon handle, char *licenseCode, int productType);
- TYPHOON_EXTERN int Typhoon_StartWebServer(HTyphoon handle, const char *pServerAddr, int serverPort);
- TYPHOON_EXTERN int Typhoon_GetLicenseInfo(HTyphoon handle, stLocalConfig *pLicenseInfo);
- TYPHOON_EXTERN void Typhoon_SetConnCallback(HTyphoon handle, HTyPhoonConnCallBack hCb);
- TYPHOON_EXTERN int Typhoon_InitUDPSocket(HTyphoon handle, char* ip, uint16_t port);
- TYPHOON_EXTERN SOCKADDR Typhoon_GetLocalAddr(HTyphoon handle);
- TYPHOON_EXTERN int32_t Typhoon_GetConnectionCount(HTyphoon handle);
- TYPHOON_EXTERN stTyphoonCfg Typhoon_GetTyphoonConfig(HTyphoon handle);
- TYPHOON_EXTERN void Typhoon_SetTyphoonConfig(HTyphoon handle, stTyphoonCfg *pCfg);
- TYPHOON_EXTERN stTyphoonConnCfg Typhoon_GetConnDefaultCfg(HTyphoon handle);
- TYPHOON_EXTERN void Typhoon_SetConnDefaultCfg(HTyphoon handle, stTyphoonConnCfg *pCfg);
- TYPHOON_EXTERN uv_loop_t *Typhoon_GetMainLoop(HTyphoon handle);
- TYPHOON_EXTERN void Typhoon_SetAppInitCB(HTyphoon handle, Typhoon_AppInit_Callback Init);
- TYPHOON_EXTERN void Typhoon_SetAppUninitCB(HTyphoon handle, Typhoon_AppUninit_Callback Uninit);
- TYPHOON_EXTERN void Typhoon_SetConnCallback(HTyphoon handle, HTyPhoonConnCallBack hCb);
- TYPHOON_EXTERN int Typhoon_SynchronizedExecute(HTyphoon handle, Typhoon_SynchronizedExecute_Cb cb, void *userdata);
- TYPHOON_EXTERN char *Typhoon_GetVersion();
- TYPHOON_EXTERN void Typhoon_DisableUdpCheckSum(HTyphoon handle);
- TYPHOON_EXTERN int Typhoon_SetCaPath(HTyphoon handle, char *caPath);
- TYPHOON_EXTERN int Typhoon_SetSocks5ProxyConfig(HTyphoon handle, stTyphoonSocks5Config *pCfg);
- TYPHOON_EXTERN stTyphoonSocks5Config *Typhoon_GetSocks5ProxyConfig(HTyphoon handle);
- TYPHOON_EXTERN void Typhoon_SetRemainingFlow(HTyphoon handle, const int64_t remainingFlow);
- TYPHOON_EXTERN int Typhoon_SetSDNDataDirestory(char *path);
- TYPHOON_EXTERN void Typhoon_SetSDNPort(uint32_t port);
- TYPHOON_EXTERN TyphoonCfg* Typhoon_GetGlobalCfg();
- TYPHOON_EXTERN void Typhoon_SDNId2IpPort(char * ztsid, char *ipv4, int ipv4_len, short *port);
- TYPHOON_EXTERN void Typhoon_GlobalInit(int clockInterval);
- TYPHOON_EXTERN void Typhoon_UseSDN();
- TYPHOON_EXTERN int Typhoon_IsUseSDN();
- TYPHOON_EXTERN uint64_t Typhoon_GetNodeId();
- /* TyphoonBuff 函数 */
- //应用无法直接Create TyphoonBuff实例, 在PULL数据的模式下, 应用可以通过连接的recv函数获取TyphoonBuff
- //此处的操作仅用于获取缓存头指针/缓存数据长度
- TYPHOON_EXTERN void DestroyHTyphoonBuff(HTyphoonBuff buf);
- TYPHOON_EXTERN uint8_t* TyphoonBuff_GetBuff(HTyphoonBuff buf);
- TYPHOON_EXTERN int32_t TyphoonBuff_GetLen(HTyphoonBuff buf);
- #ifdef __cplusplus
- }
- #endif
- #endif
|