From e69f8795efdff73e555e862a18227aecfdba872c Mon Sep 17 00:00:00 2001 From: Mitrofanov Mikhail Date: Sat, 12 Jul 2025 16:50:23 +0300 Subject: [PATCH] Most functions works --- Example.Backend/Program.cs | 8 ++++---- Example.Frontend/Program.cs | 6 +++--- mROA/Implementation/Backend/ConnectionHub.cs | 5 +---- mROA/Implementation/Backend/HubRequestExtractor.cs | 8 ++------ mROA/Implementation/Backend/NetworkGatewayModule.cs | 8 +++++--- mROA/Implementation/EndPointContext.cs | 2 +- mROA/Implementation/Frontend/NetworkFrontendBridge.cs | 5 +++-- mROA/Implementation/RemoteInstanceRepository.cs | 4 +--- 8 files changed, 20 insertions(+), 26 deletions(-) diff --git a/Example.Backend/Program.cs b/Example.Backend/Program.cs index 7e6dae2..f13e513 100644 --- a/Example.Backend/Program.cs +++ b/Example.Backend/Program.cs @@ -50,15 +50,15 @@ class Program builder.Services.AddSingleton(); - var mroaMachine = builder.Build(); - + var host = builder.Build(); + host.Services.GetService(); // // builder.Build(); // new RemoteTypeBinder(); // // - _ = mroaMachine.Services.GetService()!.Start(); - var gateway = mroaMachine.Services.GetService(); + _ = host.Services.GetService()!.Start(); + var gateway = host.Services.GetService(); gateway.Run(); Console.ReadLine(); diff --git a/Example.Frontend/Program.cs b/Example.Frontend/Program.cs index b63dc7b..d22c829 100644 --- a/Example.Frontend/Program.cs +++ b/Example.Frontend/Program.cs @@ -58,10 +58,10 @@ class Program var frontendBridge = app.Services.GetService()!; await frontendBridge.Connect(); - _ = app.Services.GetService()!.StartExtraction(); - _ = app.Services.GetService().Start(serverEndPoint); + _ = app.Services.GetService()!.StartExtraction(); + _ = app.Services.GetService().Start(serverEndPoint); Console.WriteLine(app.Services.GetService().HostId); - var context = app.Services.GetService(); + var context = app.Services.GetService(); #if !JUST_LOAD var factory = diff --git a/mROA/Implementation/Backend/ConnectionHub.cs b/mROA/Implementation/Backend/ConnectionHub.cs index 5034a28..54dc096 100644 --- a/mROA/Implementation/Backend/ConnectionHub.cs +++ b/mROA/Implementation/Backend/ConnectionHub.cs @@ -7,7 +7,7 @@ namespace mROA.Implementation.Backend public class ConnectionHub : IConnectionHub { private readonly Dictionary _connections = new(); - private IContextualSerializationToolKit _serializationToolkit; + private readonly IContextualSerializationToolKit _serializationToolkit; public ConnectionHub(IContextualSerializationToolKit serializationToolkit) { @@ -16,9 +16,6 @@ namespace mROA.Implementation.Backend public void RegisterInteraction(IChannelInteractionModule interaction) { - if (_serializationToolkit is null) - throw new NullReferenceException("Serialization toolkit is null"); - _connections.Add(interaction.ConnectionId, interaction); var module = new RepresentationModule(interaction, _serializationToolkit); OnConnected?.Invoke(module); diff --git a/mROA/Implementation/Backend/HubRequestExtractor.cs b/mROA/Implementation/Backend/HubRequestExtractor.cs index 3a47f5d..2b09ae2 100644 --- a/mROA/Implementation/Backend/HubRequestExtractor.cs +++ b/mROA/Implementation/Backend/HubRequestExtractor.cs @@ -5,8 +5,6 @@ namespace mROA.Implementation.Backend { public class HubRequestExtractor { - private IConnectionHub _hub; - private IRealStoreInstanceRepository _contextRepository; private IInstanceRepository _remoteContextRepository; private IMethodRepository _methodRepository; @@ -14,12 +12,10 @@ namespace mROA.Implementation.Backend private IExecuteModule _executeModule; public HubRequestExtractor(IConnectionHub hub, IRealStoreInstanceRepository contextRepository, - RemoteInstanceRepository remoteContextRepository, IMethodRepository methodRepository, + IInstanceRepository remoteContextRepository, IMethodRepository methodRepository, IContextualSerializationToolKit serializationToolkit, IExecuteModule executeModule) { - _hub = hub; - _hub.OnConnected += HubOnOnConnected; - + hub.OnConnected += HubOnOnConnected; _contextRepository = contextRepository; _remoteContextRepository = remoteContextRepository; _methodRepository = methodRepository; diff --git a/mROA/Implementation/Backend/NetworkGatewayModule.cs b/mROA/Implementation/Backend/NetworkGatewayModule.cs index 6cf40bd..8661876 100644 --- a/mROA/Implementation/Backend/NetworkGatewayModule.cs +++ b/mROA/Implementation/Backend/NetworkGatewayModule.cs @@ -13,17 +13,19 @@ namespace mROA.Implementation.Backend { private readonly IServiceProvider _serviceProvider; private readonly TcpListener _tcpListener; - private IConnectionHub? _hub; + private readonly IConnectionHub _hub; private readonly IContextualSerializationToolKit _serialization; private readonly Dictionary _extractorsCTS = new(); - private ICallIndexProvider? _callIndexProvider; + private ICallIndexProvider _callIndexProvider; private readonly IIdentityGenerator _identityGenerator; - public NetworkGatewayModule(IOptions options, IServiceProvider service, IIdentityGenerator identityGenerator, IContextualSerializationToolKit serialization) + public NetworkGatewayModule(IOptions options, IServiceProvider service, IIdentityGenerator identityGenerator, IContextualSerializationToolKit serialization, ICallIndexProvider callIndexProvider, IConnectionHub hub) { _tcpListener = new(options.Value.Endpoint); _serviceProvider = service; _identityGenerator = identityGenerator; _serialization = serialization; + _callIndexProvider = callIndexProvider; + _hub = hub; } public void Run() diff --git a/mROA/Implementation/EndPointContext.cs b/mROA/Implementation/EndPointContext.cs index adda01e..9f8ad12 100644 --- a/mROA/Implementation/EndPointContext.cs +++ b/mROA/Implementation/EndPointContext.cs @@ -8,7 +8,7 @@ namespace mROA.Implementation { } - public EndPointContext(IInstanceRepository realRepository, IInstanceRepository remoteRepository) + public EndPointContext(IRealStoreInstanceRepository realRepository, IInstanceRepository remoteRepository) { RealRepository = realRepository; RemoteRepository = remoteRepository; diff --git a/mROA/Implementation/Frontend/NetworkFrontendBridge.cs b/mROA/Implementation/Frontend/NetworkFrontendBridge.cs index f9204e8..7b096ea 100644 --- a/mROA/Implementation/Frontend/NetworkFrontendBridge.cs +++ b/mROA/Implementation/Frontend/NetworkFrontendBridge.cs @@ -14,17 +14,18 @@ namespace mROA.Implementation.Frontend { private readonly IPEndPoint _serverEndPoint; private TcpClient _tcpClient = new(); - private IChannelInteractionModule? _interactionModule; + private IChannelInteractionModule _interactionModule; private IContextualSerializationToolKit _serialization; private ChannelInteractionModule.StreamExtractor? _currentExtractor; private CancellationTokenSource _rawExtractorCancellation; private IEndPointContext _context; - public NetworkFrontendBridge(IOptions options, IEndPointContext context, IContextualSerializationToolKit serialization) + public NetworkFrontendBridge(IOptions options, IEndPointContext context, IContextualSerializationToolKit serialization, IChannelInteractionModule interactionModule) { _serverEndPoint = options.Value.Endpoint; _context = context; _serialization = serialization; + _interactionModule = interactionModule; _rawExtractorCancellation = new CancellationTokenSource(); } diff --git a/mROA/Implementation/RemoteInstanceRepository.cs b/mROA/Implementation/RemoteInstanceRepository.cs index e2dae41..72e21fe 100644 --- a/mROA/Implementation/RemoteInstanceRepository.cs +++ b/mROA/Implementation/RemoteInstanceRepository.cs @@ -12,14 +12,12 @@ namespace mROA.Implementation private IRepresentationModuleProducer _representationProducer; - public RemoteInstanceRepository(ICallIndexProvider callIndexProvider, IRepresentationModuleProducer representationProducer, int hostId) + public RemoteInstanceRepository(ICallIndexProvider callIndexProvider, IRepresentationModuleProducer representationProducer) { _callIndexProvider = callIndexProvider; _representationProducer = representationProducer; - HostId = hostId; } - public int HostId { get; set; } public int ResisterObject(object o, IEndPointContext context) {