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; } }
//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; } }
public void Broadcast(DarkLightEvent darkLightEvent) { _mediatorAdapter.PublishCEP(darkLightEvent); }
//IMediatorAdapter, IBacktestAdapter public void Publish(DarkLightEvent darkLightEvent) { PublishCEP(darkLightEvent); }
public void Publish(DarkLightEvent darkLightEvent) { _epService.EPRuntime.SendEvent(darkLightEvent); }