diff --git a/mROA.Codegen/obj/Debug/netstandard2.0/mROA.Codegen.AssemblyInfo.cs b/mROA.Codegen/obj/Debug/netstandard2.0/mROA.Codegen.AssemblyInfo.cs
index 09ecb14..062991e 100644
--- a/mROA.Codegen/obj/Debug/netstandard2.0/mROA.Codegen.AssemblyInfo.cs
+++ b/mROA.Codegen/obj/Debug/netstandard2.0/mROA.Codegen.AssemblyInfo.cs
@@ -13,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("mROA.Codegen")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
-[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+f3ece97ebf7746e8d4439601aab0ec75815f30cf")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+ad2ef8e4b754b4cb2c5d3dbaa5c24f15201dd0f9")]
[assembly: System.Reflection.AssemblyProductAttribute("mROA.Codegen")]
[assembly: System.Reflection.AssemblyTitleAttribute("mROA.Codegen")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
diff --git a/mROA.Codegen/obj/mROA.Codegen.csproj.nuget.g.props b/mROA.Codegen/obj/mROA.Codegen.csproj.nuget.g.props
index 6f36b67..353ed1c 100644
--- a/mROA.Codegen/obj/mROA.Codegen.csproj.nuget.g.props
+++ b/mROA.Codegen/obj/mROA.Codegen.csproj.nuget.g.props
@@ -5,18 +5,18 @@
NuGet
$(MSBuildThisFileDirectory)project.assets.json
$(UserProfile)\.nuget\packages\
- C:\Users\Mimm\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages
+ C:\Users\Mikhail\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages
PackageReference
6.12.0
-
+
- C:\Users\Mimm\.nuget\packages\microsoft.codeanalysis.analyzers\3.3.4
+ C:\Users\Mikhail\.nuget\packages\microsoft.codeanalysis.analyzers\3.3.4
\ No newline at end of file
diff --git a/mROA.Example/Main.cs b/mROA.Example/Main.cs
index 8dca6d1..8272259 100644
--- a/mROA.Example/Main.cs
+++ b/mROA.Example/Main.cs
@@ -1,5 +1,7 @@
+using System.Runtime.InteropServices;
using mROA.Codegen;
+using mROA.Implementation.Test;
namespace mROA.Example;
@@ -7,7 +9,17 @@ public class MainX
{
public static void Main(string[] args)
{
- CoCodegenMethodRepository a = new CoCodegenMethodRepository();
-
+ // CoCodegenMethodRepository a = new CoCodegenMethodRepository();
+ unsafe
+ {
+
+ }
+ }
+
+ public unsafe byte[] Convert(T input)
+ {
+ var size = Marshal.SizeOf(typeof(T));
+ var place = Marshal.AllocHGlobal(size);
+ var pt = (T*)place;
}
}
\ No newline at end of file
diff --git a/mROA.Example/mROA.Example.csproj b/mROA.Example/mROA.Example.csproj
index 6530a4e..e8a41d0 100644
--- a/mROA.Example/mROA.Example.csproj
+++ b/mROA.Example/mROA.Example.csproj
@@ -5,6 +5,7 @@
enable
enable
Exe
+ true
diff --git a/mROA.Example/obj/Debug/net9.0/mROA.Example.AssemblyInfo.cs b/mROA.Example/obj/Debug/net9.0/mROA.Example.AssemblyInfo.cs
index c9f1179..c539156 100644
--- a/mROA.Example/obj/Debug/net9.0/mROA.Example.AssemblyInfo.cs
+++ b/mROA.Example/obj/Debug/net9.0/mROA.Example.AssemblyInfo.cs
@@ -13,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("mROA.Example")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
-[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+f3ece97ebf7746e8d4439601aab0ec75815f30cf")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+ad2ef8e4b754b4cb2c5d3dbaa5c24f15201dd0f9")]
[assembly: System.Reflection.AssemblyProductAttribute("mROA.Example")]
[assembly: System.Reflection.AssemblyTitleAttribute("mROA.Example")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
diff --git a/mROA.Example/obj/mROA.Example.csproj.nuget.g.props b/mROA.Example/obj/mROA.Example.csproj.nuget.g.props
index 7f9c9db..721d876 100644
--- a/mROA.Example/obj/mROA.Example.csproj.nuget.g.props
+++ b/mROA.Example/obj/mROA.Example.csproj.nuget.g.props
@@ -5,12 +5,12 @@
NuGet
$(MSBuildThisFileDirectory)project.assets.json
$(UserProfile)\.nuget\packages\
- C:\Users\Mimm\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages
+ C:\Users\Mikhail\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages
PackageReference
6.12.0
-
+
\ No newline at end of file
diff --git a/mROA.Test/obj/Debug/net9.0/mROA.Test.AssemblyInfo.cs b/mROA.Test/obj/Debug/net9.0/mROA.Test.AssemblyInfo.cs
index f0d5168..d2a36fe 100644
--- a/mROA.Test/obj/Debug/net9.0/mROA.Test.AssemblyInfo.cs
+++ b/mROA.Test/obj/Debug/net9.0/mROA.Test.AssemblyInfo.cs
@@ -13,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("mROA.Test")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
-[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+2fac34a1ceac82d71c748b1421917d8fc2a60fa7")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+ad2ef8e4b754b4cb2c5d3dbaa5c24f15201dd0f9")]
[assembly: System.Reflection.AssemblyProductAttribute("mROA.Test")]
[assembly: System.Reflection.AssemblyTitleAttribute("mROA.Test")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
diff --git a/mROA.Test/obj/mROA.Test.csproj.nuget.g.props b/mROA.Test/obj/mROA.Test.csproj.nuget.g.props
index f0b8464..92a05d6 100644
--- a/mROA.Test/obj/mROA.Test.csproj.nuget.g.props
+++ b/mROA.Test/obj/mROA.Test.csproj.nuget.g.props
@@ -5,12 +5,12 @@
NuGet
$(MSBuildThisFileDirectory)project.assets.json
$(UserProfile)\.nuget\packages\
- C:\Users\Mimm\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages
+ C:\Users\Mikhail\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages
PackageReference
6.12.0
-
+
@@ -21,6 +21,6 @@
- C:\Users\Mimm\.nuget\packages\nunit.analyzers\4.6.0
+ C:\Users\Mikhail\.nuget\packages\nunit.analyzers\4.6.0
\ No newline at end of file
diff --git a/mROA/Abstract/IExecuteModule.cs b/mROA/Abstract/IExecuteModule.cs
index 4df615a..bb464f0 100644
--- a/mROA/Abstract/IExecuteModule.cs
+++ b/mROA/Abstract/IExecuteModule.cs
@@ -1,8 +1,9 @@
+using mROA.Abstract;
using mROA.Implementation;
namespace mROA;
-public interface IExecuteModule
+public interface IExecuteModule : IInjectableModule
{
ICommandExecution Execute(ICallRequest command);
}
\ No newline at end of file
diff --git a/mROA/Abstract/IInjectableModule.cs b/mROA/Abstract/IInjectableModule.cs
new file mode 100644
index 0000000..d40ffce
--- /dev/null
+++ b/mROA/Abstract/IInjectableModule.cs
@@ -0,0 +1,6 @@
+namespace mROA.Abstract;
+
+public interface IInjectableModule
+{
+ public void Inject(T dependency);
+}
\ No newline at end of file
diff --git a/mROA/Abstract/IInteractionModule.cs b/mROA/Abstract/IInteractionModule.cs
index 2673557..ae82c5c 100644
--- a/mROA/Abstract/IInteractionModule.cs
+++ b/mROA/Abstract/IInteractionModule.cs
@@ -1,6 +1,8 @@
+using mROA.Abstract;
+
namespace mROA;
-public interface IInteractionModule
+public interface IInteractionModule : IInjectableModule
{
void SetMessageHandler(Action handler);
void SendTo(int clientId, byte[] message);
diff --git a/mROA/Abstract/ISerialisationModule.cs b/mROA/Abstract/ISerialisationModule.cs
index 7f5332a..3730042 100644
--- a/mROA/Abstract/ISerialisationModule.cs
+++ b/mROA/Abstract/ISerialisationModule.cs
@@ -1,16 +1,16 @@
+using mROA.Abstract;
using mROA.Implementation;
namespace mROA;
-public interface ISerialisationModule
+public interface ISerialisationModule : IInjectableModule
{
void HandleIncomingRequest(int clientId, byte[] command);
void PostResponse(ICommandExecution call);
- void SetExecuteModule(IExecuteModule executeModule);
public interface IFrontendSerialisationModule
{
Task GetNextCommandExecution(Guid requestId) where T : ICommandExecution;
- Task GetFinalCommandExecution(Guid requestId);
+ Task> GetFinalCommandExecution(Guid requestId);
void PostCallRequest(ICallRequest callRequest);
}
diff --git a/mROA/Implementation/Backend/JsonSerialisationModule.cs b/mROA/Implementation/Backend/JsonSerialisationModule.cs
index 269707e..94e5158 100644
--- a/mROA/Implementation/Backend/JsonSerialisationModule.cs
+++ b/mROA/Implementation/Backend/JsonSerialisationModule.cs
@@ -6,17 +6,16 @@ namespace mROA.Implementation;
public class JsonSerialisationModule : ISerialisationModule
{
- private readonly IInteractionModule _dataSource;
+ private IInteractionModule _dataSource;
private IExecuteModule _executeModule;
private IMethodRepository _methodRepository;
- public JsonSerialisationModule(IInteractionModule dataSource, IMethodRepository methodRepository)
- {
- _dataSource = dataSource;
- _methodRepository = methodRepository;
- _dataSource.SetMessageHandler(HandleIncomingRequest);
- }
+ // public JsonSerialisationModule(IInteractionModule dataSource, IMethodRepository methodRepository)
+ // {
+ // _dataSource = dataSource;
+ // _methodRepository = methodRepository;
+ // _dataSource.SetMessageHandler(HandleIncomingRequest);
+ // }
- public void SetExecuteModule(IExecuteModule executeModule) => _executeModule = executeModule;
public void HandleIncomingRequest(int clientId, byte[] command)
{
@@ -46,4 +45,14 @@ public class JsonSerialisationModule : ISerialisationModule
var binary = Encoding.UTF8.GetBytes(texted);
_dataSource.SendTo(call.ClientId, binary);
}
+
+ public void Inject(T dependency)
+ {
+ if (dependency is IInteractionModule interactionModule)
+ _dataSource = interactionModule;
+ if (dependency is IExecuteModule executeModule)
+ _executeModule = executeModule;
+ if (dependency is IMethodRepository methodRepository)
+ _methodRepository = methodRepository;
+ }
}
\ No newline at end of file
diff --git a/mROA/Implementation/Backend/NetworkGatewayModule.cs b/mROA/Implementation/Backend/NetworkGatewayModule.cs
index 273a63c..3f83e5c 100644
--- a/mROA/Implementation/Backend/NetworkGatewayModule.cs
+++ b/mROA/Implementation/Backend/NetworkGatewayModule.cs
@@ -15,7 +15,7 @@ public class NetworkGatewayModule : IGatewayModule
public void Configure(IInteractionModule interactionModule)
{
- interactionModule = interactionModule;
+ _interactionModule = interactionModule;
}
public void Run()
diff --git a/mROA/Implementation/Backend/StreamBasedInteractionModule.cs b/mROA/Implementation/Backend/StreamBasedInteractionModule.cs
index 584e73e..cacf27c 100644
--- a/mROA/Implementation/Backend/StreamBasedInteractionModule.cs
+++ b/mROA/Implementation/Backend/StreamBasedInteractionModule.cs
@@ -48,4 +48,9 @@ public class StreamBasedInteractionModule : IInteractionModule
_streams.Remove(client.id);
}
}
+
+ public void Inject(T dependency)
+ {
+ throw new NotImplementedException();
+ }
}
\ No newline at end of file
diff --git a/mROA/Implementation/FinalCommandExecution.cs b/mROA/Implementation/FinalCommandExecution.cs
index 028e287..120084f 100644
--- a/mROA/Implementation/FinalCommandExecution.cs
+++ b/mROA/Implementation/FinalCommandExecution.cs
@@ -9,7 +9,16 @@ public class FinalCommandExecution : ICommandExecution
public int ClientId { get; set; }
[JsonIgnore]
public int CommandId { get; set; }
- public object? Result { get; set; }
+}
+
+public class FinalCommandExecution : FinalCommandExecution
+{
+ public T? Result { get; set; }
+}
+
+public class TypedFinalCommandExecution : FinalCommandExecution