offset_commit_response.go 838 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package sarama
  2. type OffsetCommitResponse struct {
  3. ClientID string
  4. Errors map[string]map[int32]KError
  5. }
  6. func (r *OffsetCommitResponse) decode(pd packetDecoder) (err error) {
  7. r.ClientID, err = pd.getString()
  8. if err != nil {
  9. return err
  10. }
  11. numTopics, err := pd.getArrayLength()
  12. if err != nil {
  13. return err
  14. }
  15. r.Errors = make(map[string]map[int32]KError, numTopics)
  16. for i := 0; i < numTopics; i++ {
  17. name, err := pd.getString()
  18. if err != nil {
  19. return err
  20. }
  21. numErrors, err := pd.getArrayLength()
  22. if err != nil {
  23. return err
  24. }
  25. r.Errors[name] = make(map[int32]KError, numErrors)
  26. for j := 0; j < numErrors; j++ {
  27. id, err := pd.getInt32()
  28. if err != nil {
  29. return err
  30. }
  31. tmp, err := pd.getInt16()
  32. if err != nil {
  33. return err
  34. }
  35. r.Errors[name][id] = KError(tmp)
  36. }
  37. }
  38. return nil
  39. }