示例#1
0
        private void NewClientLogMessageEvent(string pClientID, string pLogMessage)
        {
            //discard empty messages
            if (String.IsNullOrWhiteSpace(pLogMessage))
            {
                return;
            }

            var targetClient = ConnectedClients.FirstOrDefault(t => t.ID == pClientID);

            if (targetClient != null)
            {
                NewConsoleLogMessage?.Invoke(targetClient, pLogMessage);
            }
        }
示例#2
0
        public override void Initialize()
        {
            //get frontend target
            var predictionTarget = GetPredictionTarget();

            //init fs manager
            _filesystemManager = new FilesystemManager();
            _filesystemManager.NewLogMessageEvent += CoreNotifyLogMessage;
            _filesystemManager.Initialize();

            //configuration manager
            _configManager = new ConfigurationManager(_filesystemManager);
            _configManager.NewLogMessageEvent += CoreNotifyLogMessage;
            _configManager.Initialize();

            //forward signalr manager
            _signalrservermanager = new SignalRServerManager();
            _signalrservermanager.NewClientEvent                 += delegate(WorkerClient client) { NewClientEvent?.Invoke(client); ClientsUpdated(_signalrservermanager.ConnectedClients.Count); };
            _signalrservermanager.ClientDisconnectedEvent        += delegate(WorkerClient client) { ClientDisconnectedEvent?.Invoke(client); ClientsUpdated(_signalrservermanager.ConnectedClients.Count); };
            _signalrservermanager.ClientUpdatedEvent             += delegate(WorkerClient client) { ClientUpdatedEvent?.Invoke(client); };
            _signalrservermanager.NewLogMessageEvent             += CoreNotifyLogMessage;
            _signalrservermanager.NewConsoleLogMessage           += delegate(WorkerClient pClient, string message) { NewConsoleLogMessage?.Invoke(pClient, message); };
            _signalrservermanager.NewClientErrorMessageEvent     += delegate(WorkerClient pClient, String pErrorMessage, List <String> pErrorLog, WorkPackage pWorkPackage) { _commandManager?.ReceiveErrorFromWorker(pErrorLog, pWorkPackage); };
            _signalrservermanager.WorkRequestedEvent             += SignalrmanagerOnWorkRequestedEvent;
            _signalrservermanager.TrainingResultsReceivedEvent   += SignalrmanagerOnTrainingResultsReceivedEvent;
            _signalrservermanager.PredictionResultsReceivedEvent += SignalrmanagerOnPredictionResultsReceivedEvent;
            _signalrservermanager.Initialize();

            //frontend signalr manager
            _signalrclientmanager = new SignalRClientManager();
            _signalrclientmanager.NewLogMessageEvent        += CoreNotifyLogMessage;
            _signalrclientmanager.PredictionRequestedEvent  += _signalrclientmanager_PredictionRequestedEvent;
            _signalrclientmanager.ConfigurationUpdatedEvent += delegate(ConductorConfiguration pConfiguration) { this._commandManager.UpdateConfiguration(pConfiguration); };
            _signalrclientmanager.ConnectedEvent            += delegate() { _commandManager.ReportConfiguration(); };
            if (!String.IsNullOrWhiteSpace(predictionTarget))
            {   //only connect to frontend if a target is specified
                _signalrclientmanager.Initialize($"{predictionTarget}/server/rnn");
                _signalrclientmanager.ConnectAsync()
                .ContinueWith(t =>
                {
                    this.ClientsUpdated(_signalrservermanager.ConnectedClients.Count);
                }, TaskContinuationOptions.OnlyOnRanToCompletion);
            }
            else
            {
                this.CoreNotifyLogMessage("SignalRClientManager will not attempt to connect to a frontend because none was specified.");
            }

            //create command manager
            _commandManager = new CommandManager(_configManager, _filesystemManager, _signalrservermanager.ConnectedClients);
            _commandManager.NewLogMessageEvent      += CoreNotifyLogMessage;
            _commandManager.PredictionFinishedEvent += _commandManager_PredictionFinishedEvent;
            _commandManager.StatusChangedEvent      += _commandManager_StatusChangedEvent;
            _commandManager.Initialize();

            base.Initialize();
        }
示例#3
0
        public override void Initialize()
        {
            //init updater
            _updateNotifier = new UpdateNotifier();
            _updateNotifier.PropertyChanged += (sender, args) => OnPropertyChanged(nameof(VersionStatus));

            //forward signalr manager
            _signalrmanager = new SignalRManager();
            _signalrmanager.NewClientEvent          += delegate(Client client) { NewClientEvent?.Invoke(client); };
            _signalrmanager.ClientDisconnectedEvent += delegate(Client client) { ClientDisconnectedEvent?.Invoke(client); };
            _signalrmanager.ClientUpdatedEvent      += delegate(Client client) { ClientUpdatedEvent?.Invoke(client); };
            _signalrmanager.NewLogMessageEvent      += NotifyNewLogMessageEvent;
            _signalrmanager.NewConsoleLogMessage    += delegate(Client pClient, string message) { NewConsoleLogMessage?.Invoke(pClient, message); };
            _signalrmanager.WorkRequestedEvent      += SignalrmanagerOnWorkRequestedEvent;
            _signalrmanager.ResultsReceivedEvent    += SignalrmanagerOnResultsReceivedEvent;
            _signalrmanager.Initialize();

            //create command manager
            _commandManager = new CommandManager();
            _commandManager.NewLogMessageEvent += NotifyNewLogMessageEvent;
            _commandManager.Initialize();

            base.Initialize();
        }