Beispiel #1
0
        public void Broadcast(DarkLightEvent darkLightEvent)
        {
            //Test w/ everything periodic for now
            //var taskType = TaskType.Periodic;
            object target = new object();

            object[] message = new object[1];
            System.Action <object[]> action = null;

            switch (darkLightEvent.EventType)//taskType)
            //TODO: refactor mapping below
            {
            //NOT BEING USED YET
            case (EventType.BacktestRequest):     //TaskType.Background:
                // check if already running
                if (!_baseQueue.ContainsKey(target))
                {
                    var bgTask = _backgroundTaskFactory.StartNew(() => _mediatorAdapter.Publish(darkLightEvent));
                    //_baseQueue.Add(target, bgTask);
                }
                break;

            case (EventType.Trade):
            case EventType.Status:    //TaskType.Periodic:
                var periodicTask = new PeriodicTask(() => _eventAggregator.Publish(darkLightEvent), _budget);
                periodicTask.Start(_preemptiveScheduler);
                break;

            /*
             * case EventType.BacktestRequest://TaskType.Sporadic:
             *  // one Periodic to run all sporadics
             *  var sporadicTask1 = new SporadicTask(() => _mediatorAdapter.Publish(darkLightEvent), _budget);
             *  sporadicTask1.Start(_preemptiveScheduler);
             *  break;
             */
            case EventType.LinkedNavigation:
                // one Periodic to run all sporadics
                var sporadicTask2 = new SporadicTask(() => _eventAggregator.Publish(darkLightEvent), _budget);
                sporadicTask2.Start(_preemptiveScheduler);
                break;

            //NOT BEING USED YET
            case EventType.Result:    //TaskType.LongRunning:
                //UI
                _staTaskFactory.StartNew(() => action.DynamicInvoke(message));
                break;
            }
        }
Beispiel #2
0
        //IMediatorAdapter, IBacktestAdapter
        public void Publish(DarkLightEvent darkLightEvent)
        {
            switch (darkLightEvent.EventType)
            {
            case (EventType.BacktestRequest):
                var requestEvent = (BacktestRequestEvent)darkLightEvent;
                if (requestEvent.ActionType == ServiceAction.Run)
                {
                    OnRunBacktest(requestEvent.HistDataService, requestEvent.Response);
                }
                else if (requestEvent.ActionType == ServiceAction.Pause)
                {
                    OnPauseBacktest(requestEvent.Key);
                }
                else if (requestEvent.ActionType == ServiceAction.Resume)
                {
                    OnResumeBacktest(requestEvent.Key);
                }
                else if (requestEvent.ActionType == ServiceAction.Cancel)
                {
                    OnCancelBacktest(requestEvent.Key);
                }
                break;

            case (EventType.Status):
                OnBroadcast(darkLightEvent);
                break;

            case (EventType.Result):
                int i = 0;
                break;

            case (EventType.Trade):
                var tradeEvent = (TradeEvent)darkLightEvent;
                break;
            }
        }
Beispiel #3
0
 public void Broadcast(DarkLightEvent darkLightEvent)
 {
     _mediatorAdapter.PublishCEP(darkLightEvent);
 }
Beispiel #4
0
 //IMediatorAdapter, IBacktestAdapter
 public void Publish(DarkLightEvent darkLightEvent)
 {
     PublishCEP(darkLightEvent);
 }
Beispiel #5
0
 public void Publish(DarkLightEvent darkLightEvent)
 {
     _epService.EPRuntime.SendEvent(darkLightEvent);
 }