/// <summary>
        /// Read all records from topic to List.
        /// </summary>
        /// <returns>List of output records.</returns>
        public IEnumerable<ConsumeResult<K, V>> ReadKeyValueList()
        {
            List<ConsumeResult<K, V>> records = new List<ConsumeResult<K, V>>();
            foreach(var record in pipe.ReadList())
            {
                var key = record.Key != null ?
                    (keySerdes != null ? 
                        keySerdes.Deserialize(record.Key, new SerializationContext(MessageComponentType.Key, pipe.TopicName)) :
                        (K)configuration.DefaultKeySerDes.DeserializeObject(record.Key, new SerializationContext(MessageComponentType.Key, pipe.TopicName))) 
                    : default;

                var value = record.Value != null ?
                    (valueSerdes != null ?
                        valueSerdes.Deserialize(record.Value, new SerializationContext(MessageComponentType.Value, pipe.TopicName)) :
                        (V)configuration.DefaultValueSerDes.DeserializeObject(record.Value, new SerializationContext(MessageComponentType.Value, pipe.TopicName))) 
                    : default;

                records.Add(new ConsumeResult<K, V>{
                    Message = new Message<K, V>
                    {
                        Key = key,
                        Value = value,
                        Timestamp = record.Message.Timestamp,
                        Headers = record.Message.Headers
                    },
                    Offset = record.Offset,
                    Partition = record.Partition,
                    Topic = record.Topic,
                    IsPartitionEOF = record.IsPartitionEOF
                });
            }
            return records;
        }
Exemplo n.º 2
0
        /// <summary>
        /// Read all records from topic to List.
        /// </summary>
        /// <returns>List of output records.</returns>
        public IEnumerable <ConsumeResult <K, V> > ReadKeyValueList()
        {
            List <ConsumeResult <K, V> > records = new List <ConsumeResult <K, V> >();

            foreach (var record in pipe.ReadList())
            {
                var key = record.Key != null ?
                          (keySerdes != null ?
                           keySerdes.Deserialize(record.Key, new SerializationContext(MessageComponentType.Key, pipe.TopicName)) :
                           (K)configuration.DefaultKeySerDes.DeserializeObject(record.Key, new SerializationContext(MessageComponentType.Key, pipe.TopicName)))
                    : default;

                var value = record.Value != null ?
                            (valueSerdes != null ?
                             valueSerdes.Deserialize(record.Value, new SerializationContext(MessageComponentType.Value, pipe.TopicName)) :
                             (V)configuration.DefaultValueSerDes.DeserializeObject(record.Value, new SerializationContext(MessageComponentType.Value, pipe.TopicName)))
                    : default;

                records.Add(new ConsumeResult <K, V> {
                    Message = new Message <K, V> {
                        Key = key, Value = value, Timestamp = new Timestamp(DateTime.Now)
                    }
                });
            }
            return(records);
        }
        /// <summary>
        /// Read all records from topic to List.
        /// </summary>
        /// <returns>List of output records.</returns>
        public IEnumerable <ConsumeResult <K, V> > ReadKeyValueList()
        {
            List <ConsumeResult <K, V> > records = new List <ConsumeResult <K, V> >();

            foreach (var record in pipe.ReadList())
            {
                var key = keySerdes != null?keySerdes.Deserialize(record.Key) : (K)configuration.DefaultKeySerDes.DeserializeObject(record.Key);

                var value = valueSerdes != null?valueSerdes.Deserialize(record.Value) : (V)configuration.DefaultValueSerDes.DeserializeObject(record.Value);

                records.Add(new ConsumeResult <K, V> {
                    Message = new Message <K, V> {
                        Key = key, Value = value, Timestamp = new Timestamp(DateTime.Now)
                    }
                });
            }
            return(records);
        }