From bc54a7d25c8d0d2e5b1ebfe9edd6f492826a6147 Mon Sep 17 00:00:00 2001 From: Mikhail Mitrofanov Date: Tue, 18 Feb 2025 22:35:02 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=BF=D0=BE=D0=BB=D0=BD=D0=B8?= =?UTF-8?q?=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D0=B0=D1=8F=20=D0=B8=D0=BD=D1=84?= =?UTF-8?q?=D0=BE=D1=80=D0=BC=D0=B0=D1=86=D0=B8=D1=8F=20=D0=B4=D0=BB=D1=8F?= =?UTF-8?q?=20=D1=82=D0=B5=D1=81=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=BF=D1=80=D0=BE=D0=B8=D0=B7=D0=B2=D0=BE=D0=B4?= =?UTF-8?q?=D0=B8=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Example.Backend/Program.cs | 6 ++++-- Example.Frontend/Program.cs | 3 ++- mROA/Implementation/Backend/HubRequestExtractor.cs | 4 ++-- ...eProducer.cs => CreativeRepresentationModuleProducer.cs} | 4 ++-- 4 files changed, 10 insertions(+), 7 deletions(-) rename mROA/Implementation/{CreativeSerializationModuleProducer.cs => CreativeRepresentationModuleProducer.cs} (83%) diff --git a/Example.Backend/Program.cs b/Example.Backend/Program.cs index 7342e57..65c6fbf 100644 --- a/Example.Backend/Program.cs +++ b/Example.Backend/Program.cs @@ -5,6 +5,7 @@ using mROA.Codegen; using mROA.Implementation; using mROA.Implementation.Backend; using mROA.Implementation.Bootstrap; +using mROA.Implementation.Frontend; var builder = new FullMixBuilder(); @@ -14,7 +15,7 @@ builder.UseNetworkGateway(new IPEndPoint(IPAddress.Loopback, 4567), typeof(NextG builder.GetModule()!); builder.Modules.Add(new ConnectionHub()); -builder.Modules.Add(new HubRequestExtractor()); +builder.Modules.Add(new HubRequestExtractor(typeof(RequestExtractor))); builder.UseBasicExecution(); @@ -27,7 +28,8 @@ builder.Modules.Add(new MultiClientContextRepository(i => return repo; })); builder.SetupMethodsRepository(new CoCodegenMethodRepository()); -builder.Modules.Add(new CreativeSerializationModuleProducer([builder.GetModule()!], typeof(RepresentationModule))); +builder.Modules.Add(new CreativeRepresentationModuleProducer([builder.GetModule()!], + typeof(RepresentationModule))); builder.Build(); new RemoteTypeBinder(); diff --git a/Example.Frontend/Program.cs b/Example.Frontend/Program.cs index 1254e41..fdbd77d 100644 --- a/Example.Frontend/Program.cs +++ b/Example.Frontend/Program.cs @@ -75,4 +75,5 @@ for (int i = 0; i < iterations; i++) timer.Stop(); Console.WriteLine("X is {0}", x); -Console.WriteLine("Time : {0}", timer.Elapsed.TotalMilliseconds); \ No newline at end of file +Console.WriteLine("Time : {0}", timer.Elapsed.TotalMilliseconds); +Console.WriteLine($"Time per call: {timer.Elapsed.TotalMilliseconds / iterations} ms"); \ No newline at end of file diff --git a/mROA/Implementation/Backend/HubRequestExtractor.cs b/mROA/Implementation/Backend/HubRequestExtractor.cs index cd08192..572c4b0 100644 --- a/mROA/Implementation/Backend/HubRequestExtractor.cs +++ b/mROA/Implementation/Backend/HubRequestExtractor.cs @@ -3,7 +3,7 @@ using mROA.Implementation.Frontend; namespace mROA.Implementation.Backend; -public class HubRequestExtractor : IInjectableModule +public class HubRequestExtractor(Type extractoType) : IInjectableModule { private IConnectionHub _hub; @@ -37,7 +37,7 @@ public class HubRequestExtractor : IInjectableModule private void HubOnOnConnected(IRepresentationModule interaction) { - var extractor = new RequestExtractor(); + var extractor = (IRequestExtractor)Activator.CreateInstance(extractoType)!; extractor.Inject(interaction); if (_contextRepository is IContextRepositoryHub contextHub) extractor.Inject(contextHub.GetRepository(interaction.Id)); diff --git a/mROA/Implementation/CreativeSerializationModuleProducer.cs b/mROA/Implementation/CreativeRepresentationModuleProducer.cs similarity index 83% rename from mROA/Implementation/CreativeSerializationModuleProducer.cs rename to mROA/Implementation/CreativeRepresentationModuleProducer.cs index ee63de9..0b79371 100644 --- a/mROA/Implementation/CreativeSerializationModuleProducer.cs +++ b/mROA/Implementation/CreativeRepresentationModuleProducer.cs @@ -2,13 +2,13 @@ namespace mROA.Implementation; -public class CreativeSerializationModuleProducer : IRepresentationModuleProducer +public class CreativeRepresentationModuleProducer : IRepresentationModuleProducer { private Type _reprModuleType; private IInjectableModule[] _creationModules; private IConnectionHub? _hub; - public CreativeSerializationModuleProducer(IInjectableModule[] creationModules, Type reprModuleType) + public CreativeRepresentationModuleProducer(IInjectableModule[] creationModules, Type reprModuleType) { _creationModules = creationModules; _reprModuleType = reprModuleType;