public GroupedStreamAggregateBuilder(InternalStreamBuilder builder, Grouped <K, V> grouped, List <string> sourceNodes, string name, StreamGraphNode node)
 {
     this.builder     = builder;
     this.grouped     = grouped;
     this.sourceNodes = sourceNodes;
     this.name        = name;
     this.node        = node;
 }
 public IKGroupedStream <K, V> GroupByKey(string named = null)
 {
     return(new KGroupedStream <K, V>(
                this.nameNode,
                Grouped <K, V> .Create(named, this.keySerdes, this.valueSerdes),
                this.setSourceNodes,
                this.node,
                builder));
 }
 public IKGroupedStream <K, V> GroupByKey <KS, VS>(string named = null)
     where KS : ISerDes <K>, new()
     where VS : ISerDes <V>, new()
 {
     return(new KGroupedStream <K, V>(
                this.nameNode,
                Grouped <K, V> .Create <KS, VS>(named),
                this.setSourceNodes,
                this.node,
                builder));
 }
Beispiel #4
0
 public KGroupedStream(string name, Grouped <K, V> grouped, List <string> sourceNodes, StreamGraphNode streamsGraphNode, InternalStreamBuilder builder)
     : base(name, grouped.Key, grouped.Value, sourceNodes, streamsGraphNode, builder)
 {
 }
        private IKGroupedStream <KR, V> DoGroup <KR>(IKeyValueMapper <K, V, KR> keySelector, Grouped <KR, V> grouped)
        {
            if (keySelector == null)
            {
                throw new ArgumentNullException("GroupBy() doesn't allow null selector function");
            }

            ProcessorGraphNode <K, V> selectKeyMapNode = InternalSelectKey(keySelector, grouped.Named);

            selectKeyMapNode.KeyChangingOperation = true;

            builder.AddGraphNode(this.node, selectKeyMapNode);

            return(new KGroupedStream <KR, V>(
                       selectKeyMapNode.streamGraphNode,
                       grouped,
                       this.setSourceNodes,
                       selectKeyMapNode,
                       builder));
        }
 public IKGroupedStream <KR, V> GroupBy <KR, KS>(IKeyValueMapper <K, V, KR> keySelector, string named = null)
     where KS : ISerDes <KR>, new()
 => DoGroup(keySelector, Grouped <KR, V> .Create <KS>(named, valueSerdes));
 public IKGroupedStream <KR, V> GroupBy <KR>(IKeyValueMapper <K, V, KR> keySelector, string named = null)
 => DoGroup(keySelector, Grouped <KR, V> .Create(named, null, valueSerdes));
        private IKGroupedStream <KR, V> DoGroup <KR>(IKeyValueMapper <K, V, KR> keySelector, Grouped <KR, V> grouped)
        {
            ProcessorGraphNode <K, V> selectKeyMapNode = InternalSelectKey(keySelector, grouped.Named);

            selectKeyMapNode.KeyChangingOperation = true;

            builder.AddGraphNode(this.node, selectKeyMapNode);

            return(new KGroupedStream <KR, V>(
                       selectKeyMapNode.streamGraphNode,
                       grouped,
                       this.setSourceNodes,
                       selectKeyMapNode,
                       builder));
        }