public TrackedDistance(int capacity)
        {
            lastDist = 0;
            lastTime = new CarTimestamp(double.NaN);
            lockobj  = new object();
            queue    = new RollingQueue <TrackedDistanceItem>(capacity);

            Services.Dataset.ItemAs <double>("speed").DataValueAdded += TrackedDistance_DataValueAdded;
        }
        public TrackedDistance(int capacity)
        {
            lastDist = 0;
            lastTime = new CarTimestamp(double.NaN);
            lockobj = new object();
            queue = new RollingQueue<TrackedDistanceItem>(capacity);

            Services.Dataset.ItemAs<double>("speed").DataValueAdded += TrackedDistance_DataValueAdded;
        }
Пример #3
0
        /// <summary>
        /// Increments the rolling rate limit log for this request type
        /// </summary>
        public void BitchSlap()
        {
            lock (DynamicLock.Get(CACHE_TYPE, _key)) {
                object oCallQueue           = Cache.Get(CACHE_TYPE, _key);
                RollingQueue <DateTime> log = ((RollingQueue <DateTime>)oCallQueue ?? new RollingQueue <DateTime>(_capacity));

                log.Enqueue(DateTime.Now);

                Cache.Add(CACHE_TYPE, _key, log, _interval, new System.Web.Caching.CacheItemRemovedCallback(RemoveLock));
            }
        }
 public RelativeTransformBuilder(int capacity, bool twoD)
 {
     this.twoD       = twoD;
     recentTimestamp = new CarTimestamp(double.NaN);
     rollingQueue    = new RollingQueue <TransformEntry>(capacity);
 }
Пример #5
0
        static void Main(string[] args)
        {

            var options = new KafkaOptions(new Uri("http://kafka1:9092"), new Uri("http://kafka2:9092"))
            {
                Log = new ConsoleLog()
            };
            var router = new BrokerRouter(options);
            var client = new Producer(router);
            var timing = new RollingQueue<double>(50);
            var rate = new RollingQueue<double>(50);
            var second = DateTime.Now.Second;
            var count = 0;
            

            Task.Run(() =>
            {
                var consumer = new Consumer(new ConsumerOptions("latencies", router));
                var position = consumer.GetTopicOffsetAsync("latencies");
                position.Wait();
                consumer.SetOffsetPosition(
                    position.Result
                        .Select(p => new OffsetPosition(p.PartitionId, p.Offsets.First()))
                        .ToArray()
                    );

                foreach (var data in consumer.Consume())
                {
                    count++;
                    var rtt = (DateTime.Now - new DateTime(
                        long.Parse(Encoding.UTF8.GetString(data.Value))
                        )).TotalMilliseconds;

                    if (rtt < 1000)
                        timing.Enqueue(rtt);

                    if (second != DateTime.Now.Second)
                    {
                        second = DateTime.Now.Second;
                        rate.Enqueue(count);
                        count = 0;
                        Console.WriteLine("Rate: {0} pps.\t{1} ", 
                            rate.Average().ToString("N2") , (rtt < 1000) 
                            ? "RTT: " + timing.Average().ToString("N2") + " ms."
                            : string.Empty
                        );
                    }
                    
                }
            });



            while (true)
            {
                client.SendMessageAsync("latencies", new[] {
                    new Message(DateTime.Now.Ticks.ToString()),
                    new Message(DateTime.Now.Ticks.ToString()),
                    new Message(DateTime.Now.Ticks.ToString()),
                    new Message(DateTime.Now.Ticks.ToString()),
                    new Message(DateTime.Now.Ticks.ToString()),
                    new Message(DateTime.Now.Ticks.ToString()),
                    new Message(DateTime.Now.Ticks.ToString()),
                    new Message(DateTime.Now.Ticks.ToString()),
                    new Message(DateTime.Now.Ticks.ToString()),
                    new Message(DateTime.Now.Ticks.ToString())
                }, 1);
                Thread.Sleep(1);
            }

            client.Dispose();
            router.Dispose();
        }
 public AbsolutePoseQueue(int capacity)
 {
     this.queue = new RollingQueue<AbsolutePose>(capacity);
 }
Пример #7
0
 public AbsolutePoseQueue(int capacity)
 {
     this.queue = new RollingQueue <AbsolutePose>(capacity);
 }
 public RelativeTransformBuilder(int capacity, bool twoD)
 {
     this.twoD = twoD;
     recentTimestamp = new CarTimestamp(double.NaN);
     rollingQueue = new RollingQueue<TransformEntry>(capacity);
 }