metadata_request.go 864 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package sarama
  2. type MetadataRequest struct {
  3. Topics []string
  4. }
  5. func (r *MetadataRequest) encode(pe packetEncoder) error {
  6. err := pe.putArrayLength(len(r.Topics))
  7. if err != nil {
  8. return err
  9. }
  10. for i := range r.Topics {
  11. err = pe.putString(r.Topics[i])
  12. if err != nil {
  13. return err
  14. }
  15. }
  16. return nil
  17. }
  18. func (r *MetadataRequest) decode(pd packetDecoder, version int16) error {
  19. topicCount, err := pd.getArrayLength()
  20. if err != nil {
  21. return err
  22. }
  23. if topicCount == 0 {
  24. return nil
  25. }
  26. r.Topics = make([]string, topicCount)
  27. for i := range r.Topics {
  28. topic, err := pd.getString()
  29. if err != nil {
  30. return err
  31. }
  32. r.Topics[i] = topic
  33. }
  34. return nil
  35. }
  36. func (r *MetadataRequest) key() int16 {
  37. return 3
  38. }
  39. func (r *MetadataRequest) version() int16 {
  40. return 0
  41. }
  42. func (r *MetadataRequest) requiredVersion() KafkaVersion {
  43. return minVersion
  44. }