//------------------------------------------------------------
// Game Framework
// Copyright © 2013-2021 loyalsoft. All rights reserved.
// Homepage: http://www.game7000.com/
// Feedback: http://www.game7000.com/
//------------------------------------------------------------
using GameFramework;
using GameFramework.Event;
using GameFramework.Network;
using System.Net.Sockets;
namespace UnityGameFramework.Runtime
{
///
/// 网络错误事件。
///
public sealed class NetworkErrorEventArgs : GameEventArgs
{
///
/// 网络错误事件编号。
///
public static readonly int EventId = typeof(NetworkErrorEventArgs).GetHashCode();
///
/// 初始化网络错误事件的新实例。
///
public NetworkErrorEventArgs()
{
NetworkChannel = null;
ErrorCode = NetworkErrorCode.Unknown;
ErrorMessage = null;
}
///
/// 获取网络错误事件编号。
///
public override int Id
{
get
{
return EventId;
}
}
///
/// 获取网络频道。
///
public INetworkChannel NetworkChannel
{
get;
private set;
}
///
/// 获取错误码。
///
public NetworkErrorCode ErrorCode
{
get;
private set;
}
///
/// 获取 Socket 错误码。
///
public SocketError SocketErrorCode
{
get;
private set;
}
///
/// 获取错误信息。
///
public string ErrorMessage
{
get;
private set;
}
///
/// 创建网络错误事件。
///
/// 内部事件。
/// 创建的网络错误事件。
public static NetworkErrorEventArgs Create(GameFramework.Network.NetworkErrorEventArgs e)
{
NetworkErrorEventArgs networkErrorEventArgs = ReferencePool.Acquire();
networkErrorEventArgs.NetworkChannel = e.NetworkChannel;
networkErrorEventArgs.ErrorCode = e.ErrorCode;
networkErrorEventArgs.SocketErrorCode = e.SocketErrorCode;
networkErrorEventArgs.ErrorMessage = e.ErrorMessage;
return networkErrorEventArgs;
}
///
/// 清理网络错误事件。
///
public override void Clear()
{
NetworkChannel = null;
ErrorCode = NetworkErrorCode.Unknown;
ErrorMessage = null;
}
}
}