public AggregateTimeWindowQueueBase(AggregationSettings settings, Queue <MetricEvent> outputEventQueue)
 {
     /*
      * this.TimeWindowList = new List<T>();
      * this.EndTimeLastProducedEvent = DateTime.MinValue;
      * this.NewestEventTimeCreated = DateTime.MinValue;
      * this.Settings = settings;
      * this.OutputEventQueue = outputEventQueue;
      */
 }
예제 #2
0
        public AggregationSynopsisBase(ProcessMetricEvent outputEventCallback, AggregationSettings settings)
        {
            this.outputEventCallback = outputEventCallback;
            this.timeWindowQueueMap  = new Dictionary <AggregateGroupKey, TQueue>();
            this.OutputEventQueue    = new Queue <MetricEvent>();
            this.Settings            = settings;
            this.ThisLock            = new object();

            if (this.Settings.EnableExpirationClock)
            {
                this.clockGenerator = new ClockEventGenerator(settings.ExtraExpirationWaitTime);
                this.clockGenerator.ClockNotfication += new EventHandler(this.ClockNotfication);
            }
        }
예제 #3
0
        public void Start()
        {
            AggregationSettings settings = new AggregationSettings()
            {
                EnableExpirationClock           = AggregationDefaults.FarmEnableExpirationClock,
                ExpireAggregationClockFrequency = this.ExpireAggregationClockFrequency,
                ExtraExpirationWaitTime         = this.ExtraExpirationWaitTime,
                ClockExpirationWaitTime         = this.ClockExpirationWaitTime
            };

            this.synopsis = new RollupAggregationSynopsis(
                this.processEvent != null ? this.processEvent : this.ConsumeMetricEvent,
                settings);
        }
예제 #4
0
 public RollupAggregationSynopsis(ProcessMetricEvent outputEventCallback, AggregationSettings settings)
     : base(outputEventCallback, settings)
 {
 }
 public RollupAggregateTimeWindowQueue(AggregationSettings settings, Queue <MetricEvent> outputEventQueue)
     : base(settings, outputEventQueue)
 {
 }
예제 #6
0
        public void Start()
        {
            AggregationSettings settings = new AggregationSettings()
            {
                EnableExpirationClock = this.EnableExpirationClock,
                ExpireAggregationClockFrequency = this.ExpireAggregationClockFrequency,
                ExtraExpirationWaitTime = this.ExtraExpirationWaitTime,
                ClockExpirationWaitTime = this.ClockExpirationWaitTime,
                TimeWindow = this.TimeWindow
            };

            this.synopsis = new AggregationSynopsis(
                this.processEvent != null ? this.processEvent : this.ConsumeMetricEvent,
                settings);
        }