Primary implementation of untrusted message channel

This commit is contained in:
2025-04-12 12:44:38 +03:00
parent 3f92cc0f64
commit 3d3772a341
5 changed files with 96 additions and 20 deletions
+8 -3
View File
@@ -1,5 +1,6 @@
using System;
using System.IO;
using System.Threading.Channels;
using System.Threading.Tasks;
using mROA.Implementation;
@@ -8,13 +9,17 @@ namespace mROA.Abstract
public interface INextGenerationInteractionModule : IInjectableModule, IDisposable
{
int ConnectionId { get; set; }
public Stream? BaseStream { get; set; }
Stream? BaseStream { get; set; }
ChannelReader<NetworkMessageHeader> UntrustedReceiveChanel { get; set; }
ChannelWriter<(int clientId, NetworkMessageHeader messageHeader)> UntrustedPostChanel { get; set; }
Task<NetworkMessageHeader> GetNextMessageReceiving(bool infinite = true);
Task PostMessageAsync(NetworkMessageHeader messageHeader);
Task PostMessageUntrustedAsync(NetworkMessageHeader messageHeader);
void HandleMessage(NetworkMessageHeader messageHeader);
NetworkMessageHeader[] UnhandledMessages { get; }
// NetworkMessageHeader[] UnhandledMessages { get; }
NetworkMessageHeader? FirstByFilter(Predicate<NetworkMessageHeader> predicate);
event Action<int> OnDisconected;
event Action<int> OnDisconnected;
Task Restart(bool sendRecovery);
}
}