//------------------------------------------------------------
// 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;
}
}
}
}