QalSDKProxy.h 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. //
  2. // QalSDKProxy.h
  3. // QalSDK
  4. //
  5. // Created by wtlogin on 15/8/7.
  6. // Copyright (c) 2015年 tencent. All rights reserved.
  7. //
  8. #ifndef QALSDK_PROXY_H
  9. #define QALSDK_PROXY_H
  10. #import <Foundation/Foundation.h>
  11. #import "QalSDKCallbackProtocol.h"
  12. //#import "MsfDelegate.h"
  13. //#import <MsfSDK/MsfSDK.h>
  14. #define SSOOPEN_REG @"sso_open_status.stat_reg"
  15. #define SSOOPEN_HB @"sso_open_status.stat_hello"
  16. #define DEFAULT_LOG_SDK_PATH @"/sdk.log"
  17. #define DEFAULT_LOG_APP_PATH @"/app.log"
  18. #define log_internal 3600
  19. @class QalStatusAdapter;
  20. #ifdef QALSDK_FOR_TLS
  21. @class TLSRefreshDelegate;
  22. #endif
  23. /**
  24. * 日志级别
  25. */
  26. typedef NS_ENUM(NSInteger, LogLevel) {
  27. LOG_ERROR = 1,
  28. LOG_WARN = 2,
  29. LOG_INFO = 3,
  30. LOG_DEBUG = 4,
  31. };
  32. typedef enum _EQALBindFailReason
  33. {
  34. EQALBindFail_Unknown = 0, //未知错误
  35. EQALBindFail_NoSSOTicket, //缺少sso票据
  36. EQALBindFail_NoNeedToUnbind,//已经unbind,不需要重复unbind
  37. EQALBindFail_TinyidNULL,//tiny为空
  38. EQALBindFail_GuidNULL,//guid为空
  39. EQALBindFail_UnpackRegPackFail,//解注册包失败
  40. EQALBindFail_RegTimeOut,//注册超时
  41. EQALBindFail_isBinding//正在注册中
  42. //>1000的错误码为状态svr返回
  43. }EQALBindFailReason;
  44. typedef enum _EQALPacketFailReason
  45. {
  46. EQALPacketFail_Unknown = 0,
  47. EQALPacketFail_NoNetOnReq,
  48. EQALPacketFail_NoNetOnResp,
  49. EQALPacketFail_NoAuthOnReq,
  50. EQALPacketFail_SSOError,
  51. EQALPacketFail_TimeoutOnReq, //请求超时
  52. EQALPacketFail_TimeoutOnResp,//回包超时
  53. EQALPacketFail_NoResendOnReq,
  54. EQALPacketFail_NoResendOnResp,
  55. EQALPacketFail_FlowSaveFiltered,
  56. EQALPacketFail_OverLoadOnReq,
  57. EQALPacketFail_LogicError
  58. }EQALPacketFailReason;
  59. typedef enum _EQALNetworkType
  60. {
  61. EQALNetworkType_Undefine = -1,
  62. EQALNetworkType_NotReachable = 0,
  63. EQALNetworkType_ReachableViaWiFi = 1,
  64. EQALNetworkType_ReachableViaWWAN = 2,
  65. EQALNetworkType_UNKNOWN = 100,
  66. EQALNetworkType_GPRS = 101,
  67. EQALNetworkType_EDGE = 102,
  68. EQALNetworkType_UMTS = 103,
  69. EQALNetworkType_CDMA = 104,
  70. EQALNetworkType_EVDO0 = 105,
  71. EQALNetworkType_EVDOA = 106,
  72. EQALNetworkType_1xRTT = 107,
  73. EQALNetworkType_HSDPA = 108,
  74. EQALNetworkType_HSUPA = 109,
  75. EQALNetworkType_HSPA = 110,
  76. EQALNetworkType_IDEN = 111,
  77. EQALNetworkType_EVDOB = 112,
  78. EQALNetworkType_LTE = 113,
  79. EQALNetworkType_EHRPD = 114,
  80. EQALNetworkType_HSPAP = 115,
  81. //Alert: 有ios自己的新类型时,从这里递减,并且改下EMSFNetWorkType_IOS_BEGIN的值
  82. EQALNetworkType_IOS_BEGIN = 98,
  83. //....
  84. EQALNetworkType_CDMA1x = 98,
  85. EQALNetworkType_WCDMA = 99,
  86. EQALNetworkType_IOS_END = 99,
  87. }EQALNetworkType;
  88. extern uint64_t g_tinyid;
  89. extern uint32_t g_isready;
  90. @interface QalSDKProxy : NSObject
  91. {
  92. int env;
  93. int _sdkAppid;
  94. int _accType;
  95. id<QalConnListenerProtocol> _conncb;
  96. id<QalLogListenerProtocol> _logcb;
  97. id<QalUserStatusListenerProtocol> _statuscb;
  98. int shortConn;
  99. }
  100. +(void)setMsfFilePath:(NSString*) filePath;
  101. /*
  102. 获取QalSDK的实例
  103. */
  104. + (QalSDKProxy *)sharedInstance;
  105. /*
  106. 设置正式/测试环境
  107. @param value 0:正式环境,1:测试环境
  108. */
  109. -(void)setEnv:(int) value;
  110. /*
  111. 初始化QalSDK
  112. @param sdkAppid sdkappid
  113. */
  114. -(id)initQal:(int) sdkAppid;
  115. /*
  116. 初始化QalSDK
  117. @param appid msf appid
  118. @param sdkAppid sdkappid
  119. @pram accTye account type
  120. */
  121. -(id)initWithAppid:(int) appid andSDKAppid:(int) sdkAppid andAccType:(int)accType;
  122. /*
  123. 增加push命令字回调
  124. @param cmd sso命令字
  125. @param cb push回调
  126. */
  127. //-(void)addInitListener:(id<QalInitCallbackProtocol>) cb;
  128. -(void)addPushListener:(NSString*) cmd andQalPushListener:(id<QalPushListenerProtocol>) cb;
  129. /*
  130. 设置连接通知回调
  131. @param cb 连接通知回调
  132. */
  133. -(void)setConnectionListener:(id<QalConnListenerProtocol>) cb;
  134. /*
  135. 设置日志回调
  136. @param cb 日志回调
  137. */
  138. -(void)setLogListener:(id<QalLogListenerProtocol>) cb;
  139. /*
  140. 设置用户状态通知回调
  141. @param cb 用户状态通知回调
  142. */
  143. -(void)setUserStatusListener:(id<QalUserStatusListenerProtocol>) cb;
  144. /*
  145. 发送消息
  146. @param cmd sso命令字
  147. @param reqbody 请求包(总包长+业务包体,总包长=业务包体长度+包头长度4字节)
  148. @param timout 回包超时时间(单位:秒)
  149. @param cb 收包回调
  150. -(int)sendMsg:(NSString*) cmd andReqbody:(NSData*) reqbody andTimeout:(int) timeout andQalReqCallback:(id<QalReqCallbackProtocol>) cb;
  151. */
  152. /*
  153. 发送消息
  154. @param identifier identifier
  155. @param cmd sso命令字
  156. @param reqbody 请求包(总包长+业务包体,总包长=业务包体长度+包头长度4字节)
  157. @param timout 回包超时时间(单位:秒)
  158. @param cb 收包回调
  159. */
  160. -(int)sendMsgWithID:(NSString*)identifier AndCmd:(NSString*) cmd andReqbody:(NSData*) reqbody andTimeout:(int) timeout andQalReqCallback:(id<QalReqCallbackProtocol>) cb;
  161. /*
  162. 绑定账户
  163. @param user 用户名
  164. @param cb 绑定回调
  165. */
  166. -(void)bindID:(NSString*) user andQalBindCallback:(id<QalBindCallbackProtocol>) cb;
  167. /*解绑账户
  168. @param user 用户名
  169. @param cb 解绑回调
  170. */
  171. -(void)unbindID:(NSString*) user andQalReqCallback:(id<QalBindCallbackProtocol>) cb;
  172. - (BOOL)isConnected;
  173. /*
  174. 打印log
  175. @param level 日志级别
  176. @param tag 日志tag
  177. @param msg 日志内容
  178. */
  179. -(void)log:(int)level andTag:(NSString*)tag andMsg:(NSString*)msg;
  180. /*
  181. 打印log
  182. @param level 日志级别
  183. @param tag 日志tag
  184. @param msg 日志内容
  185. */
  186. -(void)applog:(int)level andTag:(NSString*)tag andMsg:(NSString*)msg;
  187. /*
  188. 获取当前的qalid
  189. */
  190. -(NSString*)getIdentifier;
  191. -(void)closeLocalLog;
  192. -(NSString*)getSDKVer;
  193. -(void)clearCb:(int)seq;
  194. -(NSString*)getMsfAppid;
  195. - (void)setOpenAppid:(NSString *)aOpenAppid;
  196. -(int)getNetType;
  197. @end
  198. #endif