//------------------------------------------------------------ // Game Framework // Copyright © 2013-2021 loyalsoft. All rights reserved. // Homepage: http://www.game7000.com/ // Feedback: http://www.game7000.com/ //------------------------------------------------------------ namespace GameFramework.WebRequest { internal sealed partial class WebRequestManager : GameFrameworkModule, IWebRequestManager { /// /// Web 请求任务。 /// private sealed class WebRequestTask : TaskBase { private static int s_Serial = 0; private WebRequestTaskStatus m_Status; private string m_WebRequestUri; private byte[] m_PostData; private float m_Timeout; public WebRequestTask() { m_Status = WebRequestTaskStatus.Todo; m_WebRequestUri = null; m_PostData = null; m_Timeout = 0f; } /// /// 获取或设置 Web 请求任务的状态。 /// public WebRequestTaskStatus Status { get { return m_Status; } set { m_Status = value; } } /// /// 获取要发送的远程地址。 /// public string WebRequestUri { get { return m_WebRequestUri; } } /// /// 获取 Web 请求超时时长,以秒为单位。 /// public float Timeout { get { return m_Timeout; } } /// /// 获取 Web 请求任务的描述。 /// public override string Description { get { return m_WebRequestUri; } } /// /// 创建 Web 请求任务。 /// /// 要发送的远程地址。 /// 要发送的数据流。 /// Web 请求任务的标签。 /// Web 请求任务的优先级。 /// 下载超时时长,以秒为单位。 /// 用户自定义数据。 /// 创建的 Web 请求任务。 public static WebRequestTask Create(string webRequestUri, byte[] postData, string tag, int priority, float timeout, object userData) { WebRequestTask webRequestTask = ReferencePool.Acquire(); webRequestTask.Initialize(++s_Serial, tag, priority, userData); webRequestTask.m_WebRequestUri = webRequestUri; webRequestTask.m_PostData = postData; webRequestTask.m_Timeout = timeout; return webRequestTask; } /// /// 清理 Web 请求任务。 /// public override void Clear() { base.Clear(); m_Status = WebRequestTaskStatus.Todo; m_WebRequestUri = null; m_PostData = null; m_Timeout = 0f; } /// /// 获取要发送的数据流。 /// public byte[] GetPostData() { return m_PostData; } } } }