acl_describe_response.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package sarama
  2. import "time"
  3. type DescribeAclsResponse struct {
  4. Version int16
  5. ThrottleTime time.Duration
  6. Err KError
  7. ErrMsg *string
  8. ResourceAcls []*ResourceAcls
  9. }
  10. func (d *DescribeAclsResponse) encode(pe packetEncoder) error {
  11. pe.putInt32(int32(d.ThrottleTime / time.Millisecond))
  12. pe.putInt16(int16(d.Err))
  13. if err := pe.putNullableString(d.ErrMsg); err != nil {
  14. return err
  15. }
  16. if err := pe.putArrayLength(len(d.ResourceAcls)); err != nil {
  17. return err
  18. }
  19. for _, resourceAcl := range d.ResourceAcls {
  20. if err := resourceAcl.encode(pe, d.Version); err != nil {
  21. return err
  22. }
  23. }
  24. return nil
  25. }
  26. func (d *DescribeAclsResponse) decode(pd packetDecoder, version int16) (err error) {
  27. throttleTime, err := pd.getInt32()
  28. if err != nil {
  29. return err
  30. }
  31. d.ThrottleTime = time.Duration(throttleTime) * time.Millisecond
  32. kerr, err := pd.getInt16()
  33. if err != nil {
  34. return err
  35. }
  36. d.Err = KError(kerr)
  37. errmsg, err := pd.getString()
  38. if err != nil {
  39. return err
  40. }
  41. if errmsg != "" {
  42. d.ErrMsg = &errmsg
  43. }
  44. n, err := pd.getArrayLength()
  45. if err != nil {
  46. return err
  47. }
  48. d.ResourceAcls = make([]*ResourceAcls, n)
  49. for i := 0; i < n; i++ {
  50. d.ResourceAcls[i] = new(ResourceAcls)
  51. if err := d.ResourceAcls[i].decode(pd, version); err != nil {
  52. return err
  53. }
  54. }
  55. return nil
  56. }
  57. func (d *DescribeAclsResponse) key() int16 {
  58. return 29
  59. }
  60. func (d *DescribeAclsResponse) version() int16 {
  61. return int16(d.Version)
  62. }
  63. func (d *DescribeAclsResponse) requiredVersion() KafkaVersion {
  64. switch d.Version {
  65. case 1:
  66. return V2_0_0_0
  67. default:
  68. return V0_11_0_0
  69. }
  70. }