Răsfoiți Sursa

Refactor: No ReactiveUI in STUN

Bruce Wayne 4 ani în urmă
părinte
comite
4e05cddeb8

+ 9 - 1
NatTypeTester.ViewModels/RFC3489ViewModel.cs

@@ -9,6 +9,7 @@ using STUN.Utils;
 using System;
 using System.Net;
 using System.Reactive;
+using System.Reactive.Linq;
 using System.Threading;
 using System.Threading.Tasks;
 
@@ -51,9 +52,16 @@ namespace NatTypeTester.ViewModels
 			using var client = new StunClient3489(server.Hostname, server.Port, Result3489.LocalEndPoint, proxy);
 
 			Result3489 = client.Status;
-			await client.Query3489Async();
+			using (Observable.Interval(TimeSpan.FromSeconds(0.1))
+					.ObserveOn(RxApp.MainThreadScheduler)
+					.Subscribe(_ => this.RaisePropertyChanged(nameof(Result3489))))
+			{
+				await client.Query3489Async();
+			}
 
 			Result3489.LocalEndPoint = client.LocalEndPoint;
+
+			this.RaisePropertyChanged(nameof(Result3489));
 		}
 	}
 }

+ 9 - 1
NatTypeTester.ViewModels/RFC5780ViewModel.cs

@@ -9,6 +9,7 @@ using STUN.Utils;
 using System;
 using System.Net;
 using System.Reactive;
+using System.Reactive.Linq;
 using System.Threading;
 using System.Threading.Tasks;
 
@@ -51,12 +52,19 @@ namespace NatTypeTester.ViewModels
 			using var client = new StunClient5389UDP(server.Hostname, server.Port, Result5389.LocalEndPoint, proxy);
 
 			Result5389 = client.Status;
-			await client.QueryAsync();
+			using (Observable.Interval(TimeSpan.FromSeconds(0.1))
+					.ObserveOn(RxApp.MainThreadScheduler)
+					.Subscribe(_ => this.RaisePropertyChanged(nameof(Result5389))))
+			{
+				await client.QueryAsync();
+			}
 
 			var cache = new StunResult5389();
 			cache.Clone(client.Status);
 			cache.LocalEndPoint = client.LocalEndPoint;
 			Result5389 = cache;
+
+			this.RaisePropertyChanged(nameof(Result5389));
 		}
 	}
 }

+ 0 - 6
STUN/Client/StunClient3489.cs

@@ -1,6 +1,3 @@
-#if ReactiveUI
-using ReactiveUI.Fody.Helpers;
-#endif
 using STUN.DnsClients;
 using STUN.Enums;
 using STUN.Message;
@@ -37,9 +34,6 @@ namespace STUN.Client
 
 		protected readonly IUdpProxy Proxy;
 
-#if ReactiveUI
-		[Reactive]
-#endif
 		public ClassicStunResult Status { get; } = new();
 
 		public StunClient3489(string server, ushort port = 3478, IPEndPoint? local = null, IUdpProxy? proxy = null, IDnsQuery? dnsQuery = null)

+ 0 - 6
STUN/Client/StunClient5389UDP.cs

@@ -1,6 +1,3 @@
-#if ReactiveUI
-using ReactiveUI.Fody.Helpers;
-#endif
 using STUN.DnsClients;
 using STUN.Enums;
 using STUN.Message;
@@ -20,9 +17,6 @@ namespace STUN.Client
 	/// </summary>
 	public class StunClient5389UDP : StunClient3489
 	{
-#if ReactiveUI
-		[Reactive]
-#endif
 		public new StunResult5389 Status { get; } = new();
 
 		public StunClient5389UDP(string server, ushort port = 3478, IPEndPoint? local = null, IUdpProxy? proxy = null, IDnsQuery? dnsQuery = null)

+ 0 - 5
STUN/STUN.csproj

@@ -4,11 +4,6 @@
     <TargetFramework>netstandard2.0</TargetFramework>
     <LangVersion>latest</LangVersion>
     <Nullable>enable</Nullable>
-    <DefineConstants>TRACE;ReactiveUI</DefineConstants>
   </PropertyGroup>
 
-  <ItemGroup>
-    <PackageReference Include="ReactiveUI.Fody" Version="14.3.10" Condition="$(DefineConstants.Contains('ReactiveUI'))" />
-  </ItemGroup>
-
 </Project>

+ 0 - 6
STUN/StunResult/ClassicStunResult.cs

@@ -1,15 +1,9 @@
-#if ReactiveUI
-using ReactiveUI.Fody.Helpers;
-#endif
 using STUN.Enums;
 
 namespace STUN.StunResult
 {
 	public class ClassicStunResult : StunResult
 	{
-#if ReactiveUI
-		[Reactive]
-#endif
 		public NatType NatType { get; set; } = NatType.Unknown;
 	}
 }

+ 0 - 14
STUN/StunResult/StunResult.cs

@@ -1,24 +1,10 @@
-#if ReactiveUI
-using ReactiveUI;
-using ReactiveUI.Fody.Helpers;
-#endif
 using System.Net;
 
 namespace STUN.StunResult
 {
 	public abstract class StunResult
-#if ReactiveUI
-		: ReactiveObject
-#endif
 	{
-#if ReactiveUI
-		[Reactive]
-#endif
 		public IPEndPoint? PublicEndPoint { get; set; }
-
-#if ReactiveUI
-		[Reactive]
-#endif
 		public IPEndPoint? LocalEndPoint { get; set; }
 	}
 }

+ 0 - 15
STUN/StunResult/StunResult5389.cs

@@ -1,6 +1,3 @@
-#if ReactiveUI
-using ReactiveUI.Fody.Helpers;
-#endif
 using STUN.Enums;
 using System.Net;
 
@@ -8,24 +5,12 @@ namespace STUN.StunResult
 {
 	public class StunResult5389 : StunResult
 	{
-#if ReactiveUI
-		[Reactive]
-#endif
 		public IPEndPoint? OtherEndPoint { get; set; }
 
-#if ReactiveUI
-		[Reactive]
-#endif
 		public BindingTestResult BindingTestResult { get; set; } = BindingTestResult.Unknown;
 
-#if ReactiveUI
-		[Reactive]
-#endif
 		public MappingBehavior MappingBehavior { get; set; } = MappingBehavior.Unknown;
 
-#if ReactiveUI
-		[Reactive]
-#endif
 		public FilteringBehavior FilteringBehavior { get; set; } = FilteringBehavior.Unknown;
 
 		public void Clone(StunResult5389 result)