IWebRequestManager.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277
  1. //------------------------------------------------------------
  2. // Game Framework
  3. // Copyright © 2013-2021 loyalsoft. All rights reserved.
  4. // Homepage: http://www.game7000.com/
  5. // Feedback: http://www.game7000.com/
  6. //------------------------------------------------------------
  7. using System;
  8. using System.Collections.Generic;
  9. namespace GameFramework.WebRequest
  10. {
  11. /// <summary>
  12. /// Web 请求管理器接口。
  13. /// </summary>
  14. public interface IWebRequestManager
  15. {
  16. /// <summary>
  17. /// 获取 Web 请求代理总数量。
  18. /// </summary>
  19. int TotalAgentCount
  20. {
  21. get;
  22. }
  23. /// <summary>
  24. /// 获取可用 Web 请求代理数量。
  25. /// </summary>
  26. int FreeAgentCount
  27. {
  28. get;
  29. }
  30. /// <summary>
  31. /// 获取工作中 Web 请求代理数量。
  32. /// </summary>
  33. int WorkingAgentCount
  34. {
  35. get;
  36. }
  37. /// <summary>
  38. /// 获取等待 Web 请求数量。
  39. /// </summary>
  40. int WaitingTaskCount
  41. {
  42. get;
  43. }
  44. /// <summary>
  45. /// 获取或设置 Web 请求超时时长,以秒为单位。
  46. /// </summary>
  47. float Timeout
  48. {
  49. get;
  50. set;
  51. }
  52. /// <summary>
  53. /// Web 请求开始事件。
  54. /// </summary>
  55. event EventHandler<WebRequestStartEventArgs> WebRequestStart;
  56. /// <summary>
  57. /// Web 请求成功事件。
  58. /// </summary>
  59. event EventHandler<WebRequestSuccessEventArgs> WebRequestSuccess;
  60. /// <summary>
  61. /// Web 请求失败事件。
  62. /// </summary>
  63. event EventHandler<WebRequestFailureEventArgs> WebRequestFailure;
  64. /// <summary>
  65. /// 增加 Web 请求代理辅助器。
  66. /// </summary>
  67. /// <param name="webRequestAgentHelper">要增加的 Web 请求代理辅助器。</param>
  68. void AddWebRequestAgentHelper(IWebRequestAgentHelper webRequestAgentHelper);
  69. /// <summary>
  70. /// 根据 Web 请求任务的序列编号获取 Web 请求任务的信息。
  71. /// </summary>
  72. /// <param name="serialId">要获取信息的 Web 请求任务的序列编号。</param>
  73. /// <returns>Web 请求任务的信息。</returns>
  74. TaskInfo GetWebRequestInfo(int serialId);
  75. /// <summary>
  76. /// 根据 Web 请求任务的标签获取 Web 请求任务的信息。
  77. /// </summary>
  78. /// <param name="tag">要获取信息的 Web 请求任务的标签。</param>
  79. /// <returns>Web 请求任务的信息。</returns>
  80. TaskInfo[] GetWebRequestInfos(string tag);
  81. /// <summary>
  82. /// 根据 Web 请求任务的标签获取 Web 请求任务的信息。
  83. /// </summary>
  84. /// <param name="tag">要获取信息的 Web 请求任务的标签。</param>
  85. /// <param name="results">Web 请求任务的信息。</param>
  86. void GetAllWebRequestInfos(string tag, List<TaskInfo> results);
  87. /// <summary>
  88. /// 获取所有 Web 请求任务的信息。
  89. /// </summary>
  90. /// <returns>所有 Web 请求任务的信息。</returns>
  91. TaskInfo[] GetAllWebRequestInfos();
  92. /// <summary>
  93. /// 获取所有 Web 请求任务的信息。
  94. /// </summary>
  95. /// <param name="results">所有 Web 请求任务的信息。</param>
  96. void GetAllWebRequestInfos(List<TaskInfo> results);
  97. /// <summary>
  98. /// 增加 Web 请求任务。
  99. /// </summary>
  100. /// <param name="webRequestUri">Web 请求地址。</param>
  101. /// <returns>新增 Web 请求任务的序列编号。</returns>
  102. int AddWebRequest(string webRequestUri);
  103. /// <summary>
  104. /// 增加 Web 请求任务。
  105. /// </summary>
  106. /// <param name="webRequestUri">Web 请求地址。</param>
  107. /// <param name="postData">要发送的数据流。</param>
  108. /// <returns>新增 Web 请求任务的序列编号。</returns>
  109. int AddWebRequest(string webRequestUri, byte[] postData);
  110. /// <summary>
  111. /// 增加 Web 请求任务。
  112. /// </summary>
  113. /// <param name="webRequestUri">Web 请求地址。</param>
  114. /// <param name="tag">Web 请求任务的标签。</param>
  115. /// <returns>新增 Web 请求任务的序列编号。</returns>
  116. int AddWebRequest(string webRequestUri, string tag);
  117. /// <summary>
  118. /// 增加 Web 请求任务。
  119. /// </summary>
  120. /// <param name="webRequestUri">Web 请求地址。</param>
  121. /// <param name="priority">Web 请求任务的优先级。</param>
  122. /// <returns>新增 Web 请求任务的序列编号。</returns>
  123. int AddWebRequest(string webRequestUri, int priority);
  124. /// <summary>
  125. /// 增加 Web 请求任务。
  126. /// </summary>
  127. /// <param name="webRequestUri">Web 请求地址。</param>
  128. /// <param name="userData">用户自定义数据。</param>
  129. /// <returns>新增 Web 请求任务的序列编号。</returns>
  130. int AddWebRequest(string webRequestUri, object userData);
  131. /// <summary>
  132. /// 增加 Web 请求任务。
  133. /// </summary>
  134. /// <param name="webRequestUri">Web 请求地址。</param>
  135. /// <param name="postData">要发送的数据流。</param>
  136. /// <param name="tag">Web 请求任务的标签。</param>
  137. /// <returns>新增 Web 请求任务的序列编号。</returns>
  138. int AddWebRequest(string webRequestUri, byte[] postData, string tag);
  139. /// <summary>
  140. /// 增加 Web 请求任务。
  141. /// </summary>
  142. /// <param name="webRequestUri">Web 请求地址。</param>
  143. /// <param name="postData">要发送的数据流。</param>
  144. /// <param name="priority">Web 请求任务的优先级。</param>
  145. /// <returns>新增 Web 请求任务的序列编号。</returns>
  146. int AddWebRequest(string webRequestUri, byte[] postData, int priority);
  147. /// <summary>
  148. /// 增加 Web 请求任务。
  149. /// </summary>
  150. /// <param name="webRequestUri">Web 请求地址。</param>
  151. /// <param name="postData">要发送的数据流。</param>
  152. /// <param name="userData">用户自定义数据。</param>
  153. /// <returns>新增 Web 请求任务的序列编号。</returns>
  154. int AddWebRequest(string webRequestUri, byte[] postData, object userData);
  155. /// <summary>
  156. /// 增加 Web 请求任务。
  157. /// </summary>
  158. /// <param name="webRequestUri">Web 请求地址。</param>
  159. /// <param name="tag">Web 请求任务的标签。</param>
  160. /// <param name="priority">Web 请求任务的优先级。</param>
  161. /// <returns>新增 Web 请求任务的序列编号。</returns>
  162. int AddWebRequest(string webRequestUri, string tag, int priority);
  163. /// <summary>
  164. /// 增加 Web 请求任务。
  165. /// </summary>
  166. /// <param name="webRequestUri">Web 请求地址。</param>
  167. /// <param name="tag">Web 请求任务的标签。</param>
  168. /// <param name="userData">用户自定义数据。</param>
  169. /// <returns>新增 Web 请求任务的序列编号。</returns>
  170. int AddWebRequest(string webRequestUri, string tag, object userData);
  171. /// <summary>
  172. /// 增加 Web 请求任务。
  173. /// </summary>
  174. /// <param name="webRequestUri">Web 请求地址。</param>
  175. /// <param name="priority">Web 请求任务的优先级。</param>
  176. /// <param name="userData">用户自定义数据。</param>
  177. /// <returns>新增 Web 请求任务的序列编号。</returns>
  178. int AddWebRequest(string webRequestUri, int priority, object userData);
  179. /// <summary>
  180. /// 增加 Web 请求任务。
  181. /// </summary>
  182. /// <param name="webRequestUri">Web 请求地址。</param>
  183. /// <param name="postData">要发送的数据流。</param>
  184. /// <param name="tag">Web 请求任务的标签。</param>
  185. /// <param name="priority">Web 请求任务的优先级。</param>
  186. /// <returns>新增 Web 请求任务的序列编号。</returns>
  187. int AddWebRequest(string webRequestUri, byte[] postData, string tag, int priority);
  188. /// <summary>
  189. /// 增加 Web 请求任务。
  190. /// </summary>
  191. /// <param name="webRequestUri">Web 请求地址。</param>
  192. /// <param name="postData">要发送的数据流。</param>
  193. /// <param name="tag">Web 请求任务的标签。</param>
  194. /// <param name="userData">用户自定义数据。</param>
  195. /// <returns>新增 Web 请求任务的序列编号。</returns>
  196. int AddWebRequest(string webRequestUri, byte[] postData, string tag, object userData);
  197. /// <summary>
  198. /// 增加 Web 请求任务。
  199. /// </summary>
  200. /// <param name="webRequestUri">Web 请求地址。</param>
  201. /// <param name="postData">要发送的数据流。</param>
  202. /// <param name="priority">Web 请求任务的优先级。</param>
  203. /// <param name="userData">用户自定义数据。</param>
  204. /// <returns>新增 Web 请求任务的序列编号。</returns>
  205. int AddWebRequest(string webRequestUri, byte[] postData, int priority, object userData);
  206. /// <summary>
  207. /// 增加 Web 请求任务。
  208. /// </summary>
  209. /// <param name="webRequestUri">Web 请求地址。</param>
  210. /// <param name="tag">Web 请求任务的标签。</param>
  211. /// <param name="priority">Web 请求任务的优先级。</param>
  212. /// <param name="userData">用户自定义数据。</param>
  213. /// <returns>新增 Web 请求任务的序列编号。</returns>
  214. int AddWebRequest(string webRequestUri, string tag, int priority, object userData);
  215. /// <summary>
  216. /// 增加 Web 请求任务。
  217. /// </summary>
  218. /// <param name="webRequestUri">Web 请求地址。</param>
  219. /// <param name="postData">要发送的数据流。</param>
  220. /// <param name="tag">Web 请求任务的标签。</param>
  221. /// <param name="priority">Web 请求任务的优先级。</param>
  222. /// <param name="userData">用户自定义数据。</param>
  223. /// <returns>新增 Web 请求任务的序列编号。</returns>
  224. int AddWebRequest(string webRequestUri, byte[] postData, string tag, int priority, object userData);
  225. /// <summary>
  226. /// 根据 Web 请求任务的序列编号移除 Web 请求任务。
  227. /// </summary>
  228. /// <param name="serialId">要移除 Web 请求任务的序列编号。</param>
  229. /// <returns>是否移除 Web 请求任务成功。</returns>
  230. bool RemoveWebRequest(int serialId);
  231. /// <summary>
  232. /// 根据 Web 请求任务的标签移除 Web 请求任务。
  233. /// </summary>
  234. /// <param name="tag">要移除 Web 请求任务的标签。</param>
  235. /// <returns>移除 Web 请求任务的数量。</returns>
  236. int RemoveWebRequests(string tag);
  237. /// <summary>
  238. /// 移除所有 Web 请求任务。
  239. /// </summary>
  240. /// <returns>移除 Web 请求任务的数量。</returns>
  241. int RemoveAllWebRequests();
  242. }
  243. }