blob: b5e1c45eb5d384b88950bbc45503646ea369ed93 [file] [log] [blame]
khenaidooac637102019-01-14 15:44:34 -05001package sarama
2
3import "time"
4
5type DeleteAclsResponse struct {
6 ThrottleTime time.Duration
7 FilterResponses []*FilterResponse
8}
9
10func (a *DeleteAclsResponse) encode(pe packetEncoder) error {
11 pe.putInt32(int32(a.ThrottleTime / time.Millisecond))
12
13 if err := pe.putArrayLength(len(a.FilterResponses)); err != nil {
14 return err
15 }
16
17 for _, filterResponse := range a.FilterResponses {
18 if err := filterResponse.encode(pe); err != nil {
19 return err
20 }
21 }
22
23 return nil
24}
25
26func (a *DeleteAclsResponse) decode(pd packetDecoder, version int16) (err error) {
27 throttleTime, err := pd.getInt32()
28 if err != nil {
29 return err
30 }
31 a.ThrottleTime = time.Duration(throttleTime) * time.Millisecond
32
33 n, err := pd.getArrayLength()
34 if err != nil {
35 return err
36 }
37 a.FilterResponses = make([]*FilterResponse, n)
38
39 for i := 0; i < n; i++ {
40 a.FilterResponses[i] = new(FilterResponse)
41 if err := a.FilterResponses[i].decode(pd, version); err != nil {
42 return err
43 }
44 }
45
46 return nil
47}
48
49func (d *DeleteAclsResponse) key() int16 {
50 return 31
51}
52
53func (d *DeleteAclsResponse) version() int16 {
54 return 0
55}
56
57func (d *DeleteAclsResponse) requiredVersion() KafkaVersion {
58 return V0_11_0_0
59}
60
61type FilterResponse struct {
62 Err KError
63 ErrMsg *string
64 MatchingAcls []*MatchingAcl
65}
66
67func (f *FilterResponse) encode(pe packetEncoder) error {
68 pe.putInt16(int16(f.Err))
69 if err := pe.putNullableString(f.ErrMsg); err != nil {
70 return err
71 }
72
73 if err := pe.putArrayLength(len(f.MatchingAcls)); err != nil {
74 return err
75 }
76 for _, matchingAcl := range f.MatchingAcls {
77 if err := matchingAcl.encode(pe); err != nil {
78 return err
79 }
80 }
81
82 return nil
83}
84
85func (f *FilterResponse) decode(pd packetDecoder, version int16) (err error) {
86 kerr, err := pd.getInt16()
87 if err != nil {
88 return err
89 }
90 f.Err = KError(kerr)
91
92 if f.ErrMsg, err = pd.getNullableString(); err != nil {
93 return err
94 }
95
96 n, err := pd.getArrayLength()
97 if err != nil {
98 return err
99 }
100 f.MatchingAcls = make([]*MatchingAcl, n)
101 for i := 0; i < n; i++ {
102 f.MatchingAcls[i] = new(MatchingAcl)
103 if err := f.MatchingAcls[i].decode(pd, version); err != nil {
104 return err
105 }
106 }
107
108 return nil
109}
110
111type MatchingAcl struct {
112 Err KError
113 ErrMsg *string
114 Resource
115 Acl
116}
117
118func (m *MatchingAcl) encode(pe packetEncoder) error {
119 pe.putInt16(int16(m.Err))
120 if err := pe.putNullableString(m.ErrMsg); err != nil {
121 return err
122 }
123
124 if err := m.Resource.encode(pe); err != nil {
125 return err
126 }
127
128 if err := m.Acl.encode(pe); err != nil {
129 return err
130 }
131
132 return nil
133}
134
135func (m *MatchingAcl) decode(pd packetDecoder, version int16) (err error) {
136 kerr, err := pd.getInt16()
137 if err != nil {
138 return err
139 }
140 m.Err = KError(kerr)
141
142 if m.ErrMsg, err = pd.getNullableString(); err != nil {
143 return err
144 }
145
146 if err := m.Resource.decode(pd, version); err != nil {
147 return err
148 }
149
150 if err := m.Acl.decode(pd, version); err != nil {
151 return err
152 }
153
154 return nil
155}