Beispiel #1
0
 /// <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));
     }
 }
Beispiel #2
0
        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);
        }
Beispiel #7
0
        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);
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
        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());
        }
Beispiel #10
0
 public GeneratorIterator(int maxNumEvents)
 {
     _maxNumEvents = maxNumEvents;
     _callback     = DEFAULT_SUPPORTEBEAN_CB;
 }
Beispiel #11
0
 public GeneratorIterator(int maxNumEvents, GeneratorIteratorCallback callback)
 {
     _maxNumEvents = maxNumEvents;
     _callback     = callback;
     _current      = null;
 }