acl_delete_request.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package sarama
  2. type DeleteAclsRequest struct {
  3. Version int
  4. Filters []*AclFilter
  5. }
  6. func (d *DeleteAclsRequest) encode(pe packetEncoder) error {
  7. if err := pe.putArrayLength(len(d.Filters)); err != nil {
  8. return err
  9. }
  10. for _, filter := range d.Filters {
  11. filter.Version = d.Version
  12. if err := filter.encode(pe); err != nil {
  13. return err
  14. }
  15. }
  16. return nil
  17. }
  18. func (d *DeleteAclsRequest) decode(pd packetDecoder, version int16) (err error) {
  19. d.Version = int(version)
  20. n, err := pd.getArrayLength()
  21. if err != nil {
  22. return err
  23. }
  24. d.Filters = make([]*AclFilter, n)
  25. for i := 0; i < n; i++ {
  26. d.Filters[i] = new(AclFilter)
  27. d.Filters[i].Version = int(version)
  28. if err := d.Filters[i].decode(pd, version); err != nil {
  29. return err
  30. }
  31. }
  32. return nil
  33. }
  34. func (d *DeleteAclsRequest) key() int16 {
  35. return 31
  36. }
  37. func (d *DeleteAclsRequest) version() int16 {
  38. return int16(d.Version)
  39. }
  40. func (d *DeleteAclsRequest) requiredVersion() KafkaVersion {
  41. switch d.Version {
  42. case 1:
  43. return V2_0_0_0
  44. default:
  45. return V0_11_0_0
  46. }
  47. }