acl_create_request.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package sarama
  2. type CreateAclsRequest struct {
  3. Version int16
  4. AclCreations []*AclCreation
  5. }
  6. func (c *CreateAclsRequest) encode(pe packetEncoder) error {
  7. if err := pe.putArrayLength(len(c.AclCreations)); err != nil {
  8. return err
  9. }
  10. for _, aclCreation := range c.AclCreations {
  11. if err := aclCreation.encode(pe, c.Version); err != nil {
  12. return err
  13. }
  14. }
  15. return nil
  16. }
  17. func (c *CreateAclsRequest) decode(pd packetDecoder, version int16) (err error) {
  18. c.Version = version
  19. n, err := pd.getArrayLength()
  20. if err != nil {
  21. return err
  22. }
  23. c.AclCreations = make([]*AclCreation, n)
  24. for i := 0; i < n; i++ {
  25. c.AclCreations[i] = new(AclCreation)
  26. if err := c.AclCreations[i].decode(pd, version); err != nil {
  27. return err
  28. }
  29. }
  30. return nil
  31. }
  32. func (d *CreateAclsRequest) key() int16 {
  33. return 30
  34. }
  35. func (d *CreateAclsRequest) version() int16 {
  36. return d.Version
  37. }
  38. func (d *CreateAclsRequest) requiredVersion() KafkaVersion {
  39. switch d.Version {
  40. case 1:
  41. return V2_0_0_0
  42. default:
  43. return V0_11_0_0
  44. }
  45. }
  46. type AclCreation struct {
  47. Resource
  48. Acl
  49. }
  50. func (a *AclCreation) encode(pe packetEncoder, version int16) error {
  51. if err := a.Resource.encode(pe, version); err != nil {
  52. return err
  53. }
  54. if err := a.Acl.encode(pe); err != nil {
  55. return err
  56. }
  57. return nil
  58. }
  59. func (a *AclCreation) decode(pd packetDecoder, version int16) (err error) {
  60. if err := a.Resource.decode(pd, version); err != nil {
  61. return err
  62. }
  63. if err := a.Acl.decode(pd, version); err != nil {
  64. return err
  65. }
  66. return nil
  67. }