This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
#nullable enable
|
||||
|
||||
using Cysharp.Threading.Tasks;
|
||||
|
||||
namespace ShrinkNetwork
|
||||
{
|
||||
public sealed class ShrinkNetworkContext
|
||||
{
|
||||
public ShrinkNetworkService Service { get; }
|
||||
public ShrinkNetworkSession Session { get; }
|
||||
public ShrinkNetworkPacket Packet { get; }
|
||||
|
||||
public ShrinkNetworkContext(ShrinkNetworkService service, ShrinkNetworkSession session, ShrinkNetworkPacket packet)
|
||||
{
|
||||
Service = service;
|
||||
Session = session;
|
||||
Packet = packet;
|
||||
}
|
||||
|
||||
public bool IsRequest => Packet.Kind == ShrinkNetworkPacketKind.Request;
|
||||
public bool IsResponse => Packet.Kind == ShrinkNetworkPacketKind.Response;
|
||||
public ShrinkRequestToken RequestToken => Packet.RequestToken;
|
||||
public string? Route => Packet.Route;
|
||||
|
||||
public UniTask ReplyAsync<TResponse>(TResponse response)
|
||||
where TResponse : class, IShrinkNetworkResponse
|
||||
{
|
||||
return Service.SendResponseAsync(Session, response, Packet.RequestToken, Packet.Route);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user