Beispiel #1
0
        /// <summary>
        /// Encode a request for metadata about topic and broker information.
        /// </summary>
        /// <param name="request">The MetaDataRequest to encode.</param>
        /// <returns>Encoded byte[] representing the request.</returns>
        /// <remarks>Format: (MessageSize), Header, ix(hs)</remarks>
        private byte[] EncodeMetadataRequest(MetadataRequest request)
        {
            if (request.Topics == null)
            {
                request.Topics = new List <string>();
            }

            using (var message = EncodeHeader(request)
                                 .Pack(request.Topics.Count)
                                 .Pack(request.Topics, StringPrefixEncoding.Int16))
            {
                return(message.Payload());
            }
        }
        /// <summary>
        /// Encode a request for metadata about topic and broker information.
        /// </summary>
        /// <param name="request">The MetaDataRequest to encode.</param>
        /// <returns>Encoded byte[] representing the request.</returns>
        /// <remarks>Format: (MessageSize), Header, ix(hs)</remarks>
        private byte[] EncodeMetadataRequest(MetadataRequest request)
        {
            var message = new WriteByteStream();

            if (request.Topics == null)
            {
                request.Topics = new List <string>();
            }

            message.Pack(EncodeHeader(request)); //header
            message.Pack(request.Topics.Count.ToBytes());
            message.Pack(request.Topics.Select(x => x.ToInt16SizedBytes()).ToArray());
            message.Prepend(message.Length().ToBytes());

            return(message.Payload());
        }
Beispiel #3
0
        /// <summary>
        /// Encode a request for metadata about topic and broker information.
        /// </summary>
        /// <param name="request">The MetaDataRequest to encode.</param>
        /// <returns>Encoded byte[] representing the request.</returns>
        /// <remarks>Format: (PayloadSize), Header, ix(hs)</remarks>
        private KafkaDataPayload EncodeMetadataRequest(MetadataRequest request)
        {
            if (request.Topics == null)
            {
                request.Topics = new List <string>();
            }

            using (var message = EncodeHeader(request)
                                 .Pack(request.Topics.Count)
                                 .Pack(request.Topics, StringPrefixEncoding.Int16))
            {
                return(new KafkaDataPayload
                {
                    Buffer = message.Payload(),
                    CorrelationId = request.CorrelationId,
                    ApiKey = ApiKey
                });
            }
        }