cbor works

This commit is contained in:
2025-02-27 08:40:22 +03:00
parent 46732da780
commit 5718f9c313
10 changed files with 45 additions and 48 deletions
+4
View File
@@ -14,6 +14,10 @@
<DefineConstants />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<DefineConstants />
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Example.Shared\Example.Shared.csproj" />
</ItemGroup>
+1 -1
View File
@@ -34,7 +34,7 @@ class Program
}));
builder.SetupMethodsRepository(new CoCodegenMethodRepository());
builder.Modules.Add(new CreativeRepresentationModuleProducer(
new IInjectableModule[] { builder.GetModule<JsonSerializationToolkit>()! },
new IInjectableModule[] { builder.GetModule<CborSerializationToolkit>()! },
typeof(RepresentationModule)));
builder.Modules.Add(new CancellationRepository());
+8
View File
@@ -9,6 +9,14 @@
<LangVersion>9</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<DefineConstants />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<DefineConstants />
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Example.Shared\Example.Shared.csproj" />
</ItemGroup>
+8
View File
@@ -5,6 +5,14 @@
<Nullable>enable</Nullable>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<DefineConstants />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<DefineConstants />
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\mROA\mROA.csproj" />
</ItemGroup>
-2
View File
@@ -5,7 +5,5 @@ namespace mROA.Abstract
public interface ICommandExecution
{
Guid Id { get; set; }
int ClientId { get; set; }
int CommandId { get; }
}
}
@@ -43,8 +43,7 @@ namespace mROA.Implementation.Backend
_cancellationRepo.FreeCancelation(command.Id);
return new FinalCommandExecution
{
Id = command.Id,
CommandId = command.CommandId
Id = command.Id
};
}
@@ -76,7 +75,7 @@ namespace mROA.Implementation.Backend
#endif
contextRepository.ClearObject(command.ObjectId);
}
return result;
}
catch (Exception e)
@@ -84,8 +83,6 @@ namespace mROA.Implementation.Backend
Console.WriteLine(e);
throw;
}
}
private static ICommandExecution Execute(MethodInfo currentCommand, object context, object? parameter,
@@ -98,19 +95,26 @@ namespace mROA.Implementation.Backend
: new[]
{ parameter };
var finalResult = currentCommand.Invoke(context, finalParameter);
return new TypedFinalCommandExecution
if (currentCommand.ReturnType.Name == "Void")
{
CommandId = command.CommandId, Result = finalResult,
Id = command.Id,
Type = currentCommand.ReturnType
return new FinalCommandExecution
{
Id = command.Id
};
}
return new FinalCommandExecution<object>
{
Result = finalResult,
Id = command.Id
};
}
catch (Exception e)
{
return new ExceptionCommandExecution
{
Id = command.Id, CommandId = command.CommandId,
Id = command.Id,
Exception = e.ToString()
};
}
@@ -139,17 +143,16 @@ namespace mROA.Implementation.Backend
{
if (token.IsCancellationRequested)
return;
var payload = new FinalCommandExecution
{
Id = command.Id,
CommandId = command.CommandId
Id = command.Id
};
_cancellationRepo.FreeCancelation(command.Id);
var multiClientOwnershipRepository =
TransmissionConfig.OwnershipRepository as MultiClientOwnershipRepository;
multiClientOwnershipRepository?.RegisterOwnership(representationModule.Id);
representationModule.PostCallMessage(command.Id, MessageType.FinishedCommandExecution, payload);
multiClientOwnershipRepository?.FreeOwnership();
@@ -157,14 +160,14 @@ namespace mROA.Implementation.Backend
return new AsyncCommandExecution
{
Id = command.Id, CommandId = command.CommandId
Id = command.Id
};
}
catch (Exception e)
{
return new ExceptionCommandExecution
{
Id = command.Id, CommandId = command.CommandId,
Id = command.Id,
Exception = e.ToString()
};
}
@@ -190,12 +193,10 @@ namespace mROA.Implementation.Backend
result.ContinueWith(t =>
{
var finalResult = t.GetType().GetProperty("Result")?.GetValue(t);
var payload = new TypedFinalCommandExecution
var payload = new FinalCommandExecution<object>
{
Id = command.Id,
Result = finalResult,
CommandId = command.CommandId,
Type = finalResult?.GetType()
Result = finalResult
};
_cancellationRepo.FreeCancelation(command.Id);
@@ -208,14 +209,14 @@ namespace mROA.Implementation.Backend
return new AsyncCommandExecution
{
Id = command.Id, CommandId = command.CommandId
Id = command.Id
};
}
catch (Exception e)
{
return new ExceptionCommandExecution
{
Id = command.Id, CommandId = command.CommandId,
Id = command.Id,
Exception = e.ToString()
};
}
@@ -6,7 +6,5 @@ namespace mROA.Implementation.CommandExecution
public class AsyncCommandExecution : ICommandExecution
{
public Guid Id { get; set; }
public int ClientId { get; set; }
public int CommandId { get; set; }
}
}
@@ -7,8 +7,6 @@ namespace mROA.Implementation.CommandExecution
public class ExceptionCommandExecution : ICommandExecution
{
public Guid Id { get; set; }
public int ClientId { get; set; }
public int CommandId { get; set; }
public string Exception { get; set; }
public RemoteException GetException()
@@ -1,7 +1,6 @@
using System;
using System.Text.Json.Serialization;
using mROA.Abstract;
using mROA.Implementation.Attributes;
// ReSharper disable UnusedAutoPropertyAccessor.Global
@@ -10,10 +9,6 @@ namespace mROA.Implementation.CommandExecution
public class FinalCommandExecution : ICommandExecution
{
public Guid Id { get; set; }
[SerializationIgnore]
public int ClientId { get; set; }
[SerializationIgnore]
public int CommandId { get; set; }
}
public class FinalCommandExecution<T> : FinalCommandExecution
@@ -1,13 +0,0 @@
using System;
using System.Text.Json.Serialization;
using mROA.Implementation.Attributes;
namespace mROA.Implementation.CommandExecution
{
public class TypedFinalCommandExecution : FinalCommandExecution<object>
{
[SerializationIgnore]
// ReSharper disable once UnusedAutoPropertyAccessor.Global
public Type? Type { get; set; }
}
}