topicMetadata.go 746 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package kafka
  2. type topicMetadata struct {
  3. err kafkaError
  4. name *string
  5. partitions []partitionMetadata
  6. }
  7. func (tm *topicMetadata) encode(pe packetEncoder) {
  8. pe.putError(tm.err)
  9. pe.putString(tm.name)
  10. pe.putArrayCount(len(tm.partitions))
  11. for i := range tm.partitions {
  12. (&tm.partitions[i]).encode(pe)
  13. }
  14. }
  15. func (tm *topicMetadata) decode(pd packetDecoder) (err error) {
  16. tm.err, err = pd.getError()
  17. if err != nil {
  18. return err
  19. }
  20. tm.name, err = pd.getString()
  21. if err != nil {
  22. return err
  23. }
  24. n, err := pd.getArrayCount()
  25. if err != nil {
  26. return err
  27. }
  28. tm.partitions = make([]partitionMetadata, n)
  29. for i := 0; i < n; i++ {
  30. err = (&tm.partitions[i]).decode(pd)
  31. if err != nil {
  32. return err
  33. }
  34. }
  35. return nil
  36. }