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