cubefs
74 строки · 1.3 Кб
1package sarama
2
3import (
4"time"
5)
6
7type DeleteGroupsResponse struct {
8ThrottleTime time.Duration
9GroupErrorCodes map[string]KError
10}
11
12func (r *DeleteGroupsResponse) encode(pe packetEncoder) error {
13pe.putInt32(int32(r.ThrottleTime / time.Millisecond))
14
15if err := pe.putArrayLength(len(r.GroupErrorCodes)); err != nil {
16return err
17}
18for groupID, errorCode := range r.GroupErrorCodes {
19if err := pe.putString(groupID); err != nil {
20return err
21}
22pe.putInt16(int16(errorCode))
23}
24
25return nil
26}
27
28func (r *DeleteGroupsResponse) decode(pd packetDecoder, version int16) error {
29throttleTime, err := pd.getInt32()
30if err != nil {
31return err
32}
33r.ThrottleTime = time.Duration(throttleTime) * time.Millisecond
34
35n, err := pd.getArrayLength()
36if err != nil {
37return err
38}
39if n == 0 {
40return nil
41}
42
43r.GroupErrorCodes = make(map[string]KError, n)
44for i := 0; i < n; i++ {
45groupID, err := pd.getString()
46if err != nil {
47return err
48}
49errorCode, err := pd.getInt16()
50if err != nil {
51return err
52}
53
54r.GroupErrorCodes[groupID] = KError(errorCode)
55}
56
57return nil
58}
59
60func (r *DeleteGroupsResponse) key() int16 {
61return 42
62}
63
64func (r *DeleteGroupsResponse) version() int16 {
65return 0
66}
67
68func (r *DeleteGroupsResponse) headerVersion() int16 {
69return 0
70}
71
72func (r *DeleteGroupsResponse) requiredVersion() KafkaVersion {
73return V1_1_0_0
74}
75