using DotNetty.Transport.Channels;
using JSMachine.WMS.Netty.Common.Util;
using JSMachine.WMS.Netty.NettyAsClient.Command;
using Prism.Events;
using System.ComponentModel.Composition;
using System.Threading.Tasks;
namespace JSMachine.WMS.Netty.NettyAsClient.CommandHandler
{
///
/// Netty 客户端命令处理器基类,提供通道上下文及收发端地址信息。
///
[InheritedExport("NettyAsClient")]
public abstract class BaseCmdhandler
{
///
/// 当前命令所属的 Netty 通道上下文。
///
public IChannelHandlerContext Channel { get; set; }
///
/// 远端地址信息。
///
public IPInfo RemoteIPInfo => Channel.ToIPInfo(AddressOnwer.Remote);
///
/// 本地地址信息。
///
public IPInfo LocalIPInfo=> Channel.ToIPInfo(AddressOnwer.Local);
///
/// 处理一条客户端命令。
///
/// 待处理的命令。
/// 处理成功返回 。
public abstract Task Handle(BaseCmd msg);
}
}