53 lines
864 B
Go
53 lines
864 B
Go
|
package sarama
|
||
|
|
||
|
type MetadataRequest struct {
|
||
|
Topics []string
|
||
|
}
|
||
|
|
||
|
func (r *MetadataRequest) encode(pe packetEncoder) error {
|
||
|
err := pe.putArrayLength(len(r.Topics))
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
for i := range r.Topics {
|
||
|
err = pe.putString(r.Topics[i])
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (r *MetadataRequest) decode(pd packetDecoder, version int16) error {
|
||
|
topicCount, err := pd.getArrayLength()
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
if topicCount == 0 {
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
r.Topics = make([]string, topicCount)
|
||
|
for i := range r.Topics {
|
||
|
topic, err := pd.getString()
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
r.Topics[i] = topic
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (r *MetadataRequest) key() int16 {
|
||
|
return 3
|
||
|
}
|
||
|
|
||
|
func (r *MetadataRequest) version() int16 {
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
func (r *MetadataRequest) requiredVersion() KafkaVersion {
|
||
|
return minVersion
|
||
|
}
|