Skip to content

Commit 3ac513c

Browse files
authored
Merge pull request #4 from KinectToVR/revert-2-copilot/cleanup-plugin-relay-sln
Fuck, wrong branch... Revert "Remove RelayTestServer project and non-x64 platform configurations from solution"
2 parents d6789f5 + 40942fb commit 3ac513c

File tree

5 files changed

+47
-33
lines changed

5 files changed

+47
-33
lines changed

.gitignore

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,8 @@ BenchmarkDotNet.Artifacts/
5757

5858
# .NET Core
5959
project.lock.json
60-
RelayTestServer/
6160
project.fragment.lock.json
6261
artifacts/
63-
publish_ms_out/
64-
publish_out/
65-
*.zip
6662

6763
# StyleCop
6864
StyleCopReport.xml

plugin_Relay/Models/Contract.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
using Amethyst.Plugins.Contract;
77
using MemoryPack;
88
using Microsoft.Extensions.Logging;
9-
using ActualLab.Rpc;
9+
using Stl.Rpc;
1010

1111
namespace plugin_Relay.Models;
1212

plugin_Relay/RelayDevice.cs

Lines changed: 29 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
using plugin_Relay.Models;
1717
using plugin_Relay.Pages;
1818
using Microsoft.Extensions.Logging;
19-
using ActualLab.Rpc;
19+
using Stl.Rpc;
2020

2121
// To learn more about WinUI, the WinUI project structure,
2222
// and more about our project templates, see: http://aka.ms/winui-project-info.
@@ -169,29 +169,39 @@ public void Initialize()
169169
// Mark as initialized
170170
IsInitialized = true;
171171

172-
MemoryPackFormatterProvider.Register(new TrackingDeviceFormatter());
173-
MemoryPackFormatterProvider.Register(new TrackedJointFormatter());
174-
175-
if (RelayService.Instance?.IsBackfeed ?? false)
172+
try
176173
{
177-
Status = RelayDeviceStatus.BackFeedDetected;
178-
SettingsPage.DeviceStatusAppendix = string.Empty;
179-
InitException = null;
180-
return; // Don't proceed further
181-
}
174+
MemoryPackFormatterProvider.Register(new TrackingDeviceFormatter());
175+
MemoryPackFormatterProvider.Register(new TrackedJointFormatter());
182176

183-
var services = new ServiceCollection()
184-
.AddLogging();
177+
if (RelayService.Instance?.IsBackfeed ?? false)
178+
{
179+
Status = RelayDeviceStatus.BackFeedDetected;
180+
SettingsPage.DeviceStatusAppendix = string.Empty;
181+
InitException = null;
182+
return; // Don't proceed further
183+
}
185184

186-
services.AddRpc()
187-
.AddWebSocketClient($"http://{ServerIp}:{ServerPort}/")
188-
.AddClient<IRelayService>();
185+
var services = new ServiceCollection()
186+
.AddLogging(logging => logging.AddConsole());
189187

190-
ServiceChannel = services.BuildServiceProvider();
191-
Service = ServiceChannel.GetRequiredService<IRelayService>();
188+
services.AddRpc()
189+
.AddWebSocketClient($"http://{ServerIp}:{ServerPort}/")
190+
.AddClient<IRelayService>()
191+
.AddServer<IRelayClient, DataClient>();
192192

193-
SettingsPage.DeviceStatusAppendix = string.Empty;
194-
SettingsPage.StartConnectionTest();
193+
ServiceChannel = services.BuildServiceProvider();
194+
Service = ServiceChannel.GetRequiredService<IRelayService>();
195+
196+
SettingsPage.DeviceStatusAppendix = string.Empty;
197+
SettingsPage.StartConnectionTest();
198+
}
199+
catch (Exception ex)
200+
{
201+
InitException = ex;
202+
Status = RelayDeviceStatus.ServiceError;
203+
return;
204+
}
195205

196206
Host.Log($"Tried to initialize with status: {DeviceStatusString}");
197207
InitException = null;

plugin_Relay/RelayService.cs

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@
1515
using Microsoft.UI.Xaml;
1616
using Microsoft.UI.Xaml.Controls;
1717
using plugin_Relay.Models;
18-
using ActualLab.Rpc;
18+
using Stl.Rpc;
1919
using IServiceEndpoint = Amethyst.Plugins.Contract.IServiceEndpoint;
2020
using Microsoft.AspNetCore.Builder;
21-
using ActualLab.Rpc.Server;
21+
using Stl.Rpc.Server;
2222
using MemoryPack;
2323
using Microsoft.Extensions.Logging;
2424

@@ -209,6 +209,18 @@ public int Initialize()
209209
rpc.AddServer<IRelayService, DataService>()
210210
.AddClient<IRelayClient>();
211211

212+
builder.Services.AddSingleton<RpcCallRouter>(c =>
213+
{
214+
RpcHub rpcHub = null; // Necessary because of IRelayClient, which requires call routing
215+
return (methodDef, args) =>
216+
{
217+
rpcHub ??= c.RpcHub(); // We can't resolve it earlier, coz otherwise it will trigger recursion
218+
if (methodDef.Service.Type != typeof(IRelayClient)) return rpcHub.GetClientPeer(RpcPeerRef.Default);
219+
var peerRef = new RpcPeerRef(args.Get<Stl.Text.Symbol>(0), true);
220+
return rpcHub.GetServerPeer(peerRef);
221+
};
222+
});
223+
212224
var app = builder.Build();
213225
app.Urls.Add($"http://0.0.0.0:{ServerPort}/");
214226
app.UseWebSockets();

plugin_Relay/plugin_Relay.csproj

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,13 @@
2424
</ItemGroup>
2525

2626
<ItemGroup>
27-
<PackageReference Include="ActualLab.Generators" Version="12.1.51">
28-
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
29-
<PrivateAssets>all</PrivateAssets>
30-
</PackageReference>
31-
<PackageReference Include="ActualLab.Rpc" Version="12.1.51" />
32-
<PackageReference Include="ActualLab.Rpc.Server" Version="12.1.51" />
3327
<PackageReference Include="Amethyst.Plugins.Contract" Version="1.3.0" />
3428
<PackageReference Include="MemoryPack" Version="1.21.4" />
3529
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.1" />
3630
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.2" />
37-
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.1" />
31+
<PackageReference Include="Stl.Generators" Version="6.8.11" />
32+
<PackageReference Include="Stl.Rpc" Version="6.8.11" />
33+
<PackageReference Include="Stl.Rpc.Server" Version="6.8.11" />
3834
<PackageReference Include="System.ComponentModel.Composition" Version="8.0.0" />
3935
<PackageReference Include="System.ComponentModel.Composition.Registration" Version="8.0.0" />
4036
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.7.250606001" />

0 commit comments

Comments
 (0)