mirror of
https://github.com/chylex/Minecraft-Phantom-Panel.git
synced 2024-11-23 19:42:51 +01:00
26 lines
748 B
C#
26 lines
748 B
C#
using NetMQ;
|
|
using NetMQ.Sockets;
|
|
using Phantom.Utils.Rpc.Message;
|
|
using Phantom.Utils.Tasks;
|
|
|
|
namespace Phantom.Utils.Rpc.Runtime;
|
|
|
|
public sealed class RpcConnectionToServer<TMessageBase> : RpcConnection<TMessageBase> {
|
|
private readonly ClientSocket socket;
|
|
private readonly TaskCompletionSource isReady = AsyncTasks.CreateCompletionSource();
|
|
|
|
public Task IsReady => isReady.Task;
|
|
|
|
internal RpcConnectionToServer(ClientSocket socket, MessageRegistry<TMessageBase> messageRegistry, MessageReplyTracker replyTracker) : base(messageRegistry, replyTracker) {
|
|
this.socket = socket;
|
|
}
|
|
|
|
public void SetIsReady() {
|
|
isReady.TrySetResult();
|
|
}
|
|
|
|
private protected override ValueTask Send(byte[] bytes) {
|
|
return socket.SendAsync(bytes);
|
|
}
|
|
}
|