vampire-like/Assets/GameFramework/Scripts/Runtime/Download/UnityWebRequestDownloadAgen...

49 lines
2.0 KiB
C#

//------------------------------------------------------------
// Game Framework
// Copyright © 2013-2021 Jiang Yin. All rights reserved.
// Homepage: https://gameframework.cn/
// Feedback: mailto:ellan@gameframework.cn
//------------------------------------------------------------
using GameFramework;
using GameFramework.Download;
using System;
#if UNITY_5_4_OR_NEWER
using UnityEngine.Networking;
#else
using UnityEngine.Experimental.Networking;
#endif
namespace UnityGameFramework.Runtime
{
public partial class UnityWebRequestDownloadAgentHelper : DownloadAgentHelperBase, IDisposable
{
private sealed class DownloadHandler : DownloadHandlerScript
{
private readonly UnityWebRequestDownloadAgentHelper m_Owner;
public DownloadHandler(UnityWebRequestDownloadAgentHelper owner)
: base(owner.m_CachedBytes)
{
m_Owner = owner;
}
protected override bool ReceiveData(byte[] data, int dataLength)
{
if (m_Owner != null && m_Owner.m_UnityWebRequest != null && dataLength > 0)
{
DownloadAgentHelperUpdateBytesEventArgs downloadAgentHelperUpdateBytesEventArgs = DownloadAgentHelperUpdateBytesEventArgs.Create(data, 0, dataLength);
m_Owner.m_DownloadAgentHelperUpdateBytesEventHandler(this, downloadAgentHelperUpdateBytesEventArgs);
ReferencePool.Release(downloadAgentHelperUpdateBytesEventArgs);
DownloadAgentHelperUpdateLengthEventArgs downloadAgentHelperUpdateLengthEventArgs = DownloadAgentHelperUpdateLengthEventArgs.Create(dataLength);
m_Owner.m_DownloadAgentHelperUpdateLengthEventHandler(this, downloadAgentHelperUpdateLengthEventArgs);
ReferencePool.Release(downloadAgentHelperUpdateLengthEventArgs);
}
return base.ReceiveData(data, dataLength);
}
}
}
}