2025-02-20 16:10:09 +03:00
|
|
|
using System;
|
|
|
|
|
using System.IO;
|
2025-04-12 12:44:38 +03:00
|
|
|
using System.Threading.Channels;
|
2025-02-20 16:10:09 +03:00
|
|
|
using System.Threading.Tasks;
|
2025-02-16 11:45:08 +03:00
|
|
|
using mROA.Implementation;
|
|
|
|
|
|
2025-02-20 16:10:09 +03:00
|
|
|
namespace mROA.Abstract
|
2025-02-16 11:45:08 +03:00
|
|
|
{
|
2025-04-30 12:25:23 +03:00
|
|
|
public interface IChannelInteractionModule : IInjectableModule, IDisposable
|
2025-02-20 16:10:09 +03:00
|
|
|
{
|
2025-03-31 12:27:46 +03:00
|
|
|
int ConnectionId { get; set; }
|
2025-04-30 12:25:23 +03:00
|
|
|
ChannelWriter<NetworkMessageHeader> ReceiveChanel { get; }
|
|
|
|
|
ChannelReader<NetworkMessageHeader> TrustedPostChanel { get; }
|
|
|
|
|
ChannelReader<NetworkMessageHeader> UntrustedPostChanel { get; }
|
2025-05-02 12:08:31 +03:00
|
|
|
Func<bool> IsConnected { get; set; }
|
2025-04-08 22:42:00 +03:00
|
|
|
Task<NetworkMessageHeader> GetNextMessageReceiving(bool infinite = true);
|
2025-04-06 20:51:12 +03:00
|
|
|
Task PostMessageAsync(NetworkMessageHeader messageHeader);
|
2025-04-12 12:44:38 +03:00
|
|
|
Task PostMessageUntrustedAsync(NetworkMessageHeader messageHeader);
|
2025-03-31 10:34:04 +03:00
|
|
|
void HandleMessage(NetworkMessageHeader messageHeader);
|
|
|
|
|
NetworkMessageHeader? FirstByFilter(Predicate<NetworkMessageHeader> predicate);
|
2025-04-12 12:44:38 +03:00
|
|
|
event Action<int> OnDisconnected;
|
2025-04-08 11:48:46 +03:00
|
|
|
Task Restart(bool sendRecovery);
|
2025-02-20 16:10:09 +03:00
|
|
|
}
|
2025-01-11 15:55:46 +03:00
|
|
|
}
|