//TOD: Test that we haven't included market data globally which should only be in the structured objects private static IViewComputationResultModel GetFirstResult(IViewExecutionOptions options, string viewName) { using (var remoteViewClient2 = Context.ViewProcessor.CreateClient()) { return(remoteViewClient2.GetResults(viewName, options).First()); } }
private static IViewExecutionOptions GetNoTickOptions(IViewExecutionOptions options) { options = new ExecutionOptions(options.ExecutionSequence, options.Flags & ~ViewExecutionFlags.TriggerCycleOnTimeElapsed, options.MaxSuccessiveDeltaCycles, options.DefaultExecutionOptions); return(options); }
public void AttachToViewProcess(UniqueId viewDefinitionId, IViewExecutionOptions executionOptions, bool newBatchProcess = false) { ArgumentChecker.NotNull(viewDefinitionId, "viewDefinitionId"); ArgumentChecker.NotNull(executionOptions, "executionOptions"); var request = new AttachToViewProcessRequest(viewDefinitionId, executionOptions, newBatchProcess); REST.Resolve("attachSearch").Post(request); }
public void CanRunSingleYesterdayCycleBatch() { IViewExecutionOptions req = ExecutionOptions.GetSingleCycle(DateTimeOffset.Now - TimeSpan.FromDays(1), new LiveMarketDataSpecification()); var runToCompletion = RunToCompletion(req); Assert.Equal(1, runToCompletion.Item1.Count()); Assert.Equal(1, runToCompletion.Item2.Count()); AssertApproximatelyEqual(req.ExecutionSequence.Next.ValuationTime, runToCompletion.Item2.Single().FullResult.ValuationTime); }
public void CanRunSingleCycleBatch() { IViewExecutionOptions req = ExecutionOptions.SingleCycle; var runToCompletion = RunToCompletion(req); Assert.Equal(1, runToCompletion.Item1.Count()); Assert.Equal(1, runToCompletion.Item2.Count()); AssertApproximatelyEqual(req.ExecutionSequence.Next.ValuationTime, runToCompletion.Item2.Single().FullResult.ValuationTime); }
public void CanRunSingleCycleBatchParallel() { //TODO this is not the right place for this test Parallel.For(1, 20, new ParallelOptions { MaxDegreeOfParallelism = 4 }, delegate(int i) { IViewExecutionOptions req = ExecutionOptions.SingleCycle; var runToCompletion = RunToCompletion(req); Assert.Equal(1, runToCompletion.Item1.Count()); Assert.Equal(1, runToCompletion.Item2.Count()); AssertApproximatelyEqual(req.ExecutionSequence.Next.ValuationTime, runToCompletion.Item2.Single().FullResult. ValuationTime); }); }
//TODO [Obsolete("Use the view UniqueId")] public void AttachToViewProcess(string viewDefinitionName, IViewExecutionOptions executionOptions, bool newBatchProcess = false) { ArgumentChecker.NotNull(viewDefinitionName, "viewDefinitionName"); ArgumentChecker.NotNull(executionOptions, "executionOptions"); var matching = _viewProcessor.ViewDefinitionRepository.GetDefinitionEntries().Where(k => k.Value == viewDefinitionName).ToList(); switch (matching.Count) { case 0: throw new DataNotFoundException("No such view"); case 1: AttachToViewProcess(matching.Single().Key, executionOptions, newBatchProcess); break; default: throw new DataNotFoundException("Ambiguous view"); } }
public static Tuple<IEnumerable<ViewDefinitionCompiledArgs>, IEnumerable<CycleCompletedArgs>> RunToCompletion(IViewExecutionOptions options) { using (var remoteViewClient = Context.ViewProcessor.CreateClient()) { var cycles = new ConcurrentQueue<CycleCompletedArgs>(); var compiles = new ConcurrentQueue<ViewDefinitionCompiledArgs>(); using (var manualResetEvent = new ManualResetEvent(false)) { var listener = new EventViewResultListener(); listener.ViewDefinitionCompiled += (sender, e) => compiles.Enqueue(e); listener.CycleCompleted += (sender, e) => cycles.Enqueue(e); listener.ProcessCompleted += (sender, e) => manualResetEvent.Set(); remoteViewClient.SetResultListener(listener); remoteViewClient.AttachToViewProcess(ViewName, options); manualResetEvent.WaitOne(); } Assert.InRange(compiles.Count, cycles.Any() ? 1 : 0, cycles.Count + 1); Assert.True(remoteViewClient.IsCompleted); return new Tuple<IEnumerable<ViewDefinitionCompiledArgs>, IEnumerable<CycleCompletedArgs>>(compiles, cycles); } }
public static IEnumerable<IViewComputationResultModel> GetResults(this RemoteViewClient client, UniqueId viewDefinitionId, IViewExecutionOptions executionOptions, bool newBatchProcess = false) { return GetCycles(client, viewDefinitionId, executionOptions, newBatchProcess).Select(e => e.FullResult); }
public static IEnumerable<CycleCompletedArgs> GetCycles(this RemoteViewClient client, UniqueId viewDefinitionId, IViewExecutionOptions executionOptions, bool newBatchProcess = false) { return GetCycles(client, rvc => rvc.AttachToViewProcess(viewDefinitionId, executionOptions, newBatchProcess)); }
public static IEnumerable <CycleCompletedArgs> GetCycles(this RemoteViewClient client, UniqueId viewDefinitionId, IViewExecutionOptions executionOptions, bool newBatchProcess = false) { return(GetCycles(client, rvc => rvc.AttachToViewProcess(viewDefinitionId, executionOptions, newBatchProcess))); }
public static IEnumerable <IViewComputationResultModel> GetResults(this RemoteViewClient client, UniqueId viewDefinitionId, IViewExecutionOptions executionOptions, bool newBatchProcess = false) { return(GetCycles(client, viewDefinitionId, executionOptions, newBatchProcess).Select(e => e.FullResult)); }
private static IViewExecutionOptions GetNoTickOptions(IViewExecutionOptions options) { options = new ExecutionOptions(options.ExecutionSequence, options.Flags & ~ViewExecutionFlags.TriggerCycleOnTimeElapsed, options.MaxSuccessiveDeltaCycles, options.DefaultExecutionOptions); return options; }
public static Tuple <IEnumerable <ViewDefinitionCompiledArgs>, IEnumerable <CycleCompletedArgs> > RunToCompletion(IViewExecutionOptions options) { using (var remoteViewClient = Context.ViewProcessor.CreateClient()) { var cycles = new ConcurrentQueue <CycleCompletedArgs>(); var compiles = new ConcurrentQueue <ViewDefinitionCompiledArgs>(); using (var manualResetEvent = new ManualResetEvent(false)) { var listener = new EventViewResultListener(); listener.ViewDefinitionCompiled += (sender, e) => compiles.Enqueue(e); listener.CycleCompleted += (sender, e) => cycles.Enqueue(e); listener.ProcessCompleted += (sender, e) => manualResetEvent.Set(); remoteViewClient.SetResultListener(listener); remoteViewClient.AttachToViewProcess(ViewName, options); manualResetEvent.WaitOne(); } Assert.InRange(compiles.Count, cycles.Any() ? 1 : 0, cycles.Count + 1); Assert.True(remoteViewClient.IsCompleted); return(new Tuple <IEnumerable <ViewDefinitionCompiledArgs>, IEnumerable <CycleCompletedArgs> >(compiles, cycles)); } }
public AttachToViewProcessRequest(UniqueId viewDefinitionId, IViewExecutionOptions executionOptions, bool newBatchProcess) { _viewDefinitionId = viewDefinitionId; _executionOptions = executionOptions; _newBatchProcess = newBatchProcess; }
//TOD: Test that we haven't included market data globally which should only be in the structured objects private static IViewComputationResultModel GetFirstResult(IViewExecutionOptions options, string viewName) { using (var remoteViewClient2 = Context.ViewProcessor.CreateClient()) { return remoteViewClient2.GetResults(viewName, options).First(); } }