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); }
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); }
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]); }
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); }
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)); }
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)); }
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); }
internal static object EvalMethodGetValue(AggregationRowPair row, int index) { return(row.Methods[index].Value); }
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))); }