示例#1
0
        public EvaluatorRuntime(
            ContextManager contextManager,
            IHeartBeatManager heartBeatManager,
            PIDStoreHandler pidStoreHelper,
            EvaluatorExitLogger evaluatorExitLogger)
        {
            using (Logger.LogFunction("EvaluatorRuntime::EvaluatorRuntime"))
            {
                _heartBeatManager    = heartBeatManager;
                _clock               = _heartBeatManager.EvaluatorSettings.RuntimeClock;
                _contextManager      = contextManager;
                _evaluatorId         = _heartBeatManager.EvaluatorSettings.EvalutorId;
                _pidStoreHelper      = pidStoreHelper;
                _evaluatorExitLogger = evaluatorExitLogger;

                var remoteManager = _heartBeatManager.EvaluatorSettings.RemoteManager;

                ReefMessageProtoObserver driverObserver = new ReefMessageProtoObserver();

                // subscribe to driver proto message
                driverObserver.Subscribe(o => OnNext(o.Message));

                // register the driver observer
                _evaluatorControlChannel = remoteManager.RegisterObserver(driverObserver);

                AppDomain.CurrentDomain.UnhandledException += EvaluatorRuntimeUnhandledException;
                DefaultUnhandledExceptionHandler.Unregister();

                // start the heart beat
                _clock.ScheduleAlarm(0, _heartBeatManager);
            }
        }
示例#2
0
        public EvaluatorRuntime(
            ContextManager contextManager,
            HeartBeatManager heartBeatManager)
        {
            using (Logger.LogFunction("EvaluatorRuntime::EvaluatorRuntime"))
            {
                _heartBeatManager = heartBeatManager;
                _clock            = _heartBeatManager.EvaluatorSettings.RuntimeClock;
                _contextManager   = contextManager;
                _evaluatorId      = _heartBeatManager.EvaluatorSettings.EvalutorId;
                var remoteManager = _heartBeatManager.EvaluatorSettings.RemoteManager;

                ReefMessageProtoObserver driverObserver = new ReefMessageProtoObserver();

                // subscribe to driver proto message
                driverObserver.Subscribe(o => OnNext(o.Message));

                // register the driver observer
                _evaluatorControlChannel = remoteManager.RegisterObserver(driverObserver);

                // start the heart beat
                _clock.ScheduleAlarm(0, _heartBeatManager);
            }
        }