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