Exemplo n.º 1
0
 private KafkaTopic TopicFromResponse(OffsetResponse offsetResponse)
 {
     string topicName = offsetResponse.Topics()[0];
     int partitionId = offsetResponse.Partitions(topicName)[0];
     short errorCode = offsetResponse.Errorcode(topicName, partitionId);
     if ( errorCode != 0)
     {
         if (errorCode == 3)
             throw new NoTopicException(topicName);
         throw new KafkaException(errorCode);
     }
     long offset = offsetResponse.Offsets(topicName, partitionId)[0];
     var kafkaTopic = new KafkaTopic(topicName, partitionId, offset);
     return kafkaTopic;
 }
Exemplo n.º 2
0
        /// <summary>
        /// Get a list of valid offsets (up to maxSize) before the given time.
        /// </summary>
        /// <param name="request">The offset request.</param>
        /// <returns>List of offsets, in descending order.</returns>
        public OffsetResponse GetOffsetResponseBefore(OffsetRequest request)
        {
            using (var connection = new KafkaConnection(server, port))
            {
                connection.Write(request.GetRequestBytes().ToArray());

                int dataLength = BitConverter.ToInt32(BitWorks.ReverseBytes(connection.Read(4)), 0);

                if (dataLength == 0)
                    return null;
                byte[] data = connection.Read(dataLength);
                var offsetResponse = new OffsetResponse(data);
                return offsetResponse;
            }
        }