public NetHub(ILogger <NetHub> logger, ClientIdentifierService clientIdentifierService, WorkspaceNetwork workspaceNetwork, Supervisor supervisor) { this.logger = logger; this.clientIdentifierService = clientIdentifierService; this.workspaceNetwork = workspaceNetwork; this.supervisor = supervisor; }
public WorkspaceClientManager( ILogger <WorkspaceClientManager> logger, ILogger <NetClient> clientLogger, IInputManager inputManager, WorkspaceNetwork workspaceNetwork, IHubContext <NetHub, INetClient> netHub, IHostApplicationLifetime hostApplicationLifetime, Supervisor supervisor) { this.logger = logger; this.clientLogger = clientLogger; this.inputManager = inputManager; this.workspaceNetwork = workspaceNetwork; this.netHub = netHub; this.hostApplicationLifetime = hostApplicationLifetime; this.supervisor = supervisor; }
public NetClient(Uri uri, ILogger <NetClient> logger, IInputManager inputManager, WorkspaceNetwork workspaceNetwork, Supervisor supervisor) : base(uri, logger) { this.logger = logger; this.workspaceNetwork = workspaceNetwork; connectionTaskCompletionSource = new TaskCompletionSource <object?>(TaskCreationOptions.RunContinuationsAsynchronously); this.Disconnected += (sender, e) => { if (!string.IsNullOrEmpty(serverName)) { supervisor.SetPeerStatus(serverName, Supervisor.PeerConnectionStatuses.IsServer, false); } connectionTaskCompletionSource.TrySetCanceled(); }; this.ConnectingStarted += (sender, e) => { connectionTaskCompletionSource = new TaskCompletionSource <object?>(TaskCreationOptions.RunContinuationsAsynchronously); }; this.Connected += async(sender, e) => { var serverIdentity = await Hub.Identify(Configuration.Config.Instance.Self, Configuration.Config.Instance.Desktops); if (!serverIdentity.IsValid()) { throw new InvalidOperationException("The server provided invalid identification data."); } serverName = serverIdentity.DesktopName; await Configuration.Desktop.AddFromServer(serverIdentity.Desktops !); await Hub.ChangeDisplays(inputManager.DisplayAdapter.GetDisplays().ToList()); if (!string.IsNullOrEmpty(serverName)) { supervisor.SetPeerStatus(serverName, Supervisor.PeerConnectionStatuses.IsServer, true); } connectionTaskCompletionSource.TrySetResult(null); }; }