cubefs
116 строк · 2.2 Кб
1package sarama
2
3import "time"
4
5// AlterConfigsResponse is a response type for alter config
6type AlterConfigsResponse struct {
7ThrottleTime time.Duration
8Resources []*AlterConfigsResourceResponse
9}
10
11// AlterConfigsResourceResponse is a response type for alter config resource
12type AlterConfigsResourceResponse struct {
13ErrorCode int16
14ErrorMsg string
15Type ConfigResourceType
16Name string
17}
18
19func (a *AlterConfigsResponse) encode(pe packetEncoder) error {
20pe.putInt32(int32(a.ThrottleTime / time.Millisecond))
21
22if err := pe.putArrayLength(len(a.Resources)); err != nil {
23return err
24}
25
26for _, v := range a.Resources {
27if err := v.encode(pe); err != nil {
28return err
29}
30}
31
32return nil
33}
34
35func (a *AlterConfigsResponse) decode(pd packetDecoder, version int16) error {
36throttleTime, err := pd.getInt32()
37if err != nil {
38return err
39}
40a.ThrottleTime = time.Duration(throttleTime) * time.Millisecond
41
42responseCount, err := pd.getArrayLength()
43if err != nil {
44return err
45}
46
47a.Resources = make([]*AlterConfigsResourceResponse, responseCount)
48
49for i := range a.Resources {
50a.Resources[i] = new(AlterConfigsResourceResponse)
51
52if err := a.Resources[i].decode(pd, version); err != nil {
53return err
54}
55}
56
57return nil
58}
59
60func (a *AlterConfigsResourceResponse) encode(pe packetEncoder) error {
61pe.putInt16(a.ErrorCode)
62err := pe.putString(a.ErrorMsg)
63if err != nil {
64return err
65}
66pe.putInt8(int8(a.Type))
67err = pe.putString(a.Name)
68if err != nil {
69return err
70}
71return nil
72}
73
74func (a *AlterConfigsResourceResponse) decode(pd packetDecoder, version int16) error {
75errCode, err := pd.getInt16()
76if err != nil {
77return err
78}
79a.ErrorCode = errCode
80
81e, err := pd.getString()
82if err != nil {
83return err
84}
85a.ErrorMsg = e
86
87t, err := pd.getInt8()
88if err != nil {
89return err
90}
91a.Type = ConfigResourceType(t)
92
93name, err := pd.getString()
94if err != nil {
95return err
96}
97a.Name = name
98
99return nil
100}
101
102func (a *AlterConfigsResponse) key() int16 {
103return 32
104}
105
106func (a *AlterConfigsResponse) version() int16 {
107return 0
108}
109
110func (a *AlterConfigsResponse) headerVersion() int16 {
111return 0
112}
113
114func (a *AlterConfigsResponse) requiredVersion() KafkaVersion {
115return V0_11_0_0
116}
117