Exemple #1
0
        internal static object[] EvalTypable(ObjectArrayBackedEventBean @event,
                                             AggregationRowPair row,
                                             IDictionary <String, TableMetadataColumn> items,
                                             EventBean[] eventsPerStream,
                                             bool isNewData,
                                             ExprEvaluatorContext exprEvaluatorContext)
        {
            var values = new object[items.Count];
            var count  = 0;

            foreach (var entry in items)
            {
                if (entry.Value is TableMetadataColumnPlain)
                {
                    var plain = (TableMetadataColumnPlain)entry.Value;
                    values[count] = @event.Properties[plain.IndexPlain];
                }
                else
                {
                    var aggcol = (TableMetadataColumnAggregation)entry.Value;
                    if (!aggcol.Factory.IsAccessAggregation)
                    {
                        values[count] = row.Methods[aggcol.MethodOffset].Value;
                    }
                    else
                    {
                        var pair = aggcol.AccessAccessorSlotPair;
                        values[count] = pair.Accessor.GetValue(row.States[pair.Slot], eventsPerStream, isNewData, exprEvaluatorContext);
                    }
                }
                count++;
            }
            return(values);
        }
Exemple #2
0
        public void AddEventUnadorned(EventBean @event)
        {
            ObjectArrayBackedEventBean oa   = (ObjectArrayBackedEventBean)@event;
            AggregationRowPair         aggs = _tableMetadata.RowFactory.MakeAggs(_agentInstanceContext.AgentInstanceId, null, null, AggregationServicePassThru);

            oa.Properties[0] = aggs;
            AddEvent(oa);
        }
Exemple #3
0
        private AggregationState GetState(EventBean[] eventsPerStream)
        {
            EventBean @event = eventsPerStream[_streamNum];

            if (@event == null)
            {
                return(null);
            }
            AggregationRowPair row = ExprTableEvalStrategyUtil.GetRow((ObjectArrayBackedEventBean)@event);

            return(row.States[_tableAccessColumn.AccessAccessorSlotPair.Slot]);
        }
Exemple #4
0
        public object Evaluate(EventBean[] eventsPerStream, bool isNewData, ExprEvaluatorContext context)
        {
            var @event = LockTableReadAndGet(context);

            if (@event == null)
            {
                return(null);
            }
            AggregationRowPair row = ExprTableEvalStrategyUtil.GetRow(@event);

            return(row.Methods[_methodOffset].Value);
        }
Exemple #5
0
 internal static ICollection <EventBean> EvalGetROCollectionEvents(AggregationRowPair row, AggregationAccessorSlotPair pair, EventBean[] eventsPerStream, bool newData, ExprEvaluatorContext context)
 {
     return(pair.Accessor.GetEnumerableEvents(row.States[pair.Slot], eventsPerStream, newData, context));
 }
Exemple #6
0
 internal static object EvalAccessorGetValue(AggregationRowPair row, AggregationAccessorSlotPair pair, EventBean[] eventsPerStream, bool newData, ExprEvaluatorContext context)
 {
     return(pair.Accessor.GetValue(row.States[pair.Slot], eventsPerStream, newData, context));
 }
Exemple #7
0
        internal static IDictionary <String, object> EvalMap(ObjectArrayBackedEventBean @event, AggregationRowPair row, IDictionary <String, TableMetadataColumn> items, EventBean[] eventsPerStream, bool isNewData, ExprEvaluatorContext exprEvaluatorContext)
        {
            var cols = new Dictionary <string, object>();

            foreach (var entry in items)
            {
                if (entry.Value is TableMetadataColumnPlain)
                {
                    var plain = (TableMetadataColumnPlain)entry.Value;
                    cols.Put(entry.Key, @event.Properties[plain.IndexPlain]);
                }
                else
                {
                    var aggcol = (TableMetadataColumnAggregation)entry.Value;
                    if (!aggcol.Factory.IsAccessAggregation)
                    {
                        cols.Put(entry.Key, row.Methods[aggcol.MethodOffset].Value);
                    }
                    else
                    {
                        var pair  = aggcol.AccessAccessorSlotPair;
                        var value = pair.Accessor.GetValue(row.States[pair.Slot], eventsPerStream, isNewData, exprEvaluatorContext);
                        cols.Put(entry.Key, value);
                    }
                }
            }
            return(cols);
        }
Exemple #8
0
 internal static object EvalMethodGetValue(AggregationRowPair row, int index)
 {
     return(row.Methods[index].Value);
 }
Exemple #9
0
        private AggregationState GetAndLock(ObjectArrayBackedEventBean @event, ExprEvaluatorContext exprEvaluatorContext)
        {
            AggregationRowPair row = ExprTableEvalStrategyUtil.GetRow(@event);

            return(row.States[_slot]);
        }
 internal static EventBean EvalGetEventBean(AggregationRowPair row, AggregationAccessorSlotPair pair, EventBean[] eventsPerStream, bool newData, ExprEvaluatorContext context)
 {
     return(pair.Accessor.GetEnumerableEvent(row.States[pair.Slot], new EvaluateParams(eventsPerStream, newData, context)));
 }