public override void Initialize() { CommHub.NewClientEvent += NotifyNewClientEvent; CommHub.ClientDisconnectedEvent += NotifyClientDisconnectedEvent; CommHub.NewLogMessageEvent += NotifyNewLogMessageEvent; CommHub.NewClientLogMessageEvent += NewClientLogMessageEvent; CommHub.NewClientErrorMessageEvent += NewclientErrorMessageEvent; CommHub.MachineDataReceivedEvent += (id, data) => { var client = ConnectedClients.FirstOrDefault(t => t.ID == id); if (client != null) { client.ContainerVersion = data.ContainerVersion; client.OperatingSystem = data.OperatingSystem; client.ProcessingUnit = data.ProcessingUnit; client.MachineName = data.Name; NotifyClientUpdatedEvent(client); } }; CommHub.ClientStatusUpdatedEvent += (id, status) => { var client = ConnectedClients.FirstOrDefault(t => t.ID == id); if (client != null) { client.IsWorking = status.IsWorking; client.LastEpochDuration = status.LastEpochDuration; client.CurrentEpoch = status.CurrentEpoch; client.CurrentWorkParameters = status.CurrentWorkParameters; NotifyClientUpdatedEvent(client); } }; CommHub.WorkRequestedEvent += (os, id) => WorkRequestedEvent?.Invoke(os, id); CommHub.TrainingResultsReceivedEvent += (results, id) => TrainingResultsReceivedEvent?.Invoke(results, id); CommHub.PredictionResultsReceivedEvent += (results, id) => PredictionResultsReceivedEvent?.Invoke(results, id); NotifyNewLogMessageEvent("Attempting to initialize SignalR listener on port 8080"); SignalRStartup.Run("http://0.0.0.0:8080/").ContinueWith(itask => { NotifyNewLogMessageEvent($"Could not start SignalR listener on port 8080. Are you running the application as admin? Exception: {itask.Exception.Message}"); }, TaskContinuationOptions.OnlyOnFaulted) .ContinueWith(itask => { NotifyNewLogMessageEvent($"Started SignalR listener on port 8080"); }, TaskContinuationOptions.OnlyOnRanToCompletion); base.Initialize(); }
public void SendTrainingResults(TrainingResultPackage pResults) { //debug NewLogMessageEvent?.Invoke($"Training files received from {this.Context?.ConnectionId} with {pResults.ResultFiles.Sum(t => t.FileData.Length)} bytes in {pResults.ResultFiles.Count} files"); TrainingResultsReceivedEvent?.Invoke(pResults, this.Context?.ConnectionId); }