/// <summary> /// Makes the events. /// </summary> /// <param name="maxNumEvents">The max num events.</param> /// <param name="callback">The callback.</param> /// <returns></returns> public static IEnumerator <object> MakeEvents(int maxNumEvents, GeneratorIteratorCallback callback) { for (int ii = 0; ii < maxNumEvents; ii++) { yield return(callback.Invoke(ii)); } }
public void TryCount(int numThreads, int numMessages, String epl, GeneratorIteratorCallback generatorCallback) { var threadPool = Executors.NewFixedThreadPool(numThreads); var stmt = _engine.EPAdministrator.CreateEPL(epl); var listener = new MTListener("mycount"); stmt.Events += listener.Update; var future = new Future <object> [numThreads]; for (int i = 0; i < numThreads; i++) { future[i] = threadPool.Submit(new SendEventCallable(i, _engine, EventGenerator.MakeEvents(numMessages, generatorCallback))); } threadPool.Shutdown(); threadPool.AwaitTermination(TimeSpan.FromSeconds(10)); for (int i = 0; i < numThreads; i++) { Assert.IsTrue(future[i].GetValueOrDefault().AsBoolean()); } // verify results Assert.AreEqual(numMessages * numThreads, listener.Values.Count); SortedSet <int> result = new SortedSet <int>(); foreach (Object row in listener.Values) { result.Add(row.AsInt()); } Assert.AreEqual(numMessages * numThreads, result.Count); Assert.AreEqual(1, (Object)result.First()); Assert.AreEqual(numMessages * numThreads, (Object)result.Last()); }
public void TryCount(int numThreads, int numMessages, String epl, GeneratorIteratorCallback generatorIteratorCallback) { var threadPool = Executors.NewFixedThreadPool(numThreads); var stmt = _engine.EPAdministrator.CreateEPL(epl); var listener = new SupportUpdateListener(); stmt.Events += listener.Update; var future = new Future <object> [numThreads]; for (int i = 0; i < numThreads; i++) { future[i] = threadPool.Submit(new SendEventCallable(i, _engine, EventGenerator.MakeEvents(numMessages, generatorIteratorCallback))); } threadPool.Shutdown(); threadPool.AwaitTermination(TimeSpan.FromSeconds(10)); for (int i = 0; i < numThreads; i++) { Assert.IsTrue(future[i].GetValueOrDefault().AsBoolean()); } Assert.AreEqual(numMessages * numThreads, listener.GetNewDataListFlattened().Length); }
private void TryCount( EPServiceProvider epService, int numThreads, int numMessages, string epl, GeneratorIteratorCallback generatorIteratorCallback) { var threadPool = Executors.NewFixedThreadPool(numThreads); var stmt = epService.EPAdministrator.CreateEPL(epl); var listener = new SupportUpdateListener(); stmt.Events += listener.Update; var future = new Future<bool>[numThreads]; for (var i = 0; i < numThreads; i++) { future[i] = threadPool.Submit( new SendEventCallable( i, epService, new GeneratorIterator(numMessages, generatorIteratorCallback))); } threadPool.Shutdown(); threadPool.AwaitTermination(10, TimeUnit.SECONDS); for (var i = 0; i < numThreads; i++) { Assert.IsTrue(future[i].GetValueOrDefault()); } Assert.AreEqual(numMessages * numThreads, listener.GetNewDataListFlattened().Length); }
public override void Run(EPServiceProvider epService) { var enumCallback = new GeneratorIteratorCallback( numEvent => { var bean = new SupportCollection(); bean.Strvals = _vals; return bean; }); var enumFilter = "select Strvals.anyOf(v => v = 'j') from " + typeof(SupportCollection).FullName; TryCount(epService, 4, 1000, enumFilter, enumCallback); }
public void TestStatelessEnmeration() { ICollection <String> vals = Collections.List("a", "b", "c", "d", "e", "f", "g", "h", "i", "j"); GeneratorIteratorCallback enumCallback = numEvent => { var bean = new SupportCollection { Strvals = vals }; return(bean); }; String enumFilter = "select Strvals.anyOf(v => v = 'j') from " + typeof(SupportCollection).FullName; TryCount(4, 1000, enumFilter, enumCallback); }
public void TestCount() { String plainFilter = "select count(*) as mycount from " + typeof(SupportBean).FullName; TryCount(2, 1000, plainFilter, EventGenerator.DEFAULT_SUPPORTEBEAN_CB); TryCount(4, 1000, plainFilter, EventGenerator.DEFAULT_SUPPORTEBEAN_CB); var vals = Collections.List("a", "b", "c", "d", "e", "f", "g", "h", "i", "j"); GeneratorIteratorCallback enumCallback = numEvent => { var bean = new SupportCollection(); bean.Strvals = vals; return(bean); }; String enumFilter = "select count(*) as mycount from " + typeof(SupportCollection).FullName + "(Strvals.anyOf(v => v = 'j'))"; TryCount(4, 1000, enumFilter, enumCallback); }
public override void Run(EPServiceProvider epService) { var plainFilter = "select count(*) as mycount from " + typeof(SupportBean).FullName; TryCount(epService, 2, 1000, plainFilter, GeneratorIterator.DEFAULT_SUPPORTEBEAN_CB); TryCount(epService, 4, 1000, plainFilter, GeneratorIterator.DEFAULT_SUPPORTEBEAN_CB); var vals = Collections.List("a", "b", "c", "d", "e", "f", "g", "h", "i", "j"); var enumCallback = new GeneratorIteratorCallback(numEvent => { var bean = new SupportCollection(); bean.Strvals = vals; return(bean); }); var enumFilter = "select count(*) as mycount from " + typeof(SupportCollection).FullName + "(Strvals.anyOf(v => v = 'j'))"; TryCount(epService, 4, 1000, enumFilter, enumCallback); }
public void TryCount(EPServiceProvider epService, int numThreads, int numMessages, string epl, GeneratorIteratorCallback generatorIteratorCallback) { var threadPool = Executors.NewFixedThreadPool(numThreads); var stmt = epService.EPAdministrator.CreateEPL(epl); var listener = new MTListener("mycount"); stmt.Events += listener.Update; var future = new Future <bool> [numThreads]; for (var i = 0; i < numThreads; i++) { future[i] = threadPool.Submit(new SendEventCallable(i, epService, new GeneratorIterator(numMessages, generatorIteratorCallback))); } threadPool.Shutdown(); threadPool.AwaitTermination(10, TimeUnit.SECONDS); for (var i = 0; i < numThreads; i++) { Assert.IsTrue(future[i].GetValueOrDefault()); } // verify results Assert.AreEqual(numMessages * numThreads, listener.Values.Count); var result = new SortedSet <int>(); foreach (var row in listener.Values) { result.Add(row.AsInt()); } Assert.AreEqual(numMessages * numThreads, result.Count); Assert.AreEqual(1, result.First()); Assert.AreEqual(numMessages * numThreads, result.Last()); }
public GeneratorIterator(int maxNumEvents) { _maxNumEvents = maxNumEvents; _callback = DEFAULT_SUPPORTEBEAN_CB; }
public GeneratorIterator(int maxNumEvents, GeneratorIteratorCallback callback) { _maxNumEvents = maxNumEvents; _callback = callback; _current = null; }