internal IKTable <KR, VR> BuildWindow <KR, VR>( string functionName, StoreBuilder <TimestampedWindowStore <K, VR> > storeBuilder, IKStreamAggProcessorSupplier <K, KR, V, VR> aggregateSupplier, string queryableStoreName, ISerDes <KR> keySerdes, ISerDes <VR> valueSerdes) { // if repartition required TODO // ELSE StatefulProcessorNode <K, V, TimestampedWindowStore <K, VR> > statefulProcessorNode = new StatefulProcessorNode <K, V, TimestampedWindowStore <K, VR> >( functionName, new ProcessorParameters <K, V>(aggregateSupplier, functionName), storeBuilder); builder.AddGraphNode(node, statefulProcessorNode); return(new KTableGrouped <K, KR, V, VR>(functionName, keySerdes, valueSerdes, sourceNodes, queryableStoreName, aggregateSupplier, statefulProcessorNode, builder)); }
internal IKTable <KR, VR> BuildWindow <KR, VR>( string functionName, StoreBuilder <ITimestampedWindowStore <K, VR> > storeBuilder, IKStreamAggProcessorSupplier <K, KR, V, VR> aggregateSupplier, string queryableStoreName, ISerDes <KR> keySerdes, ISerDes <VR> valueSerdes) { var sourceName = Repartition(storeBuilder); StatefulProcessorNode <K, V, ITimestampedWindowStore <K, VR> > statefulProcessorNode = new StatefulProcessorNode <K, V, ITimestampedWindowStore <K, VR> >( functionName, new ProcessorParameters <K, V>(aggregateSupplier, functionName), storeBuilder); builder.AddGraphNode(node, statefulProcessorNode); return(new KTableGrouped <K, KR, V, VR>(functionName, keySerdes, valueSerdes, sourceName.Equals(name) ? sourceNodes : sourceName.ToSingle().ToList(), queryableStoreName, aggregateSupplier, statefulProcessorNode, builder)); }