cubefs

Форк
0
/
delete_topics_response.go 
82 строки · 1.5 Кб
1
package sarama
2

3
import "time"
4

5
type DeleteTopicsResponse struct {
6
	Version         int16
7
	ThrottleTime    time.Duration
8
	TopicErrorCodes map[string]KError
9
}
10

11
func (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

29
func (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

63
func (d *DeleteTopicsResponse) key() int16 {
64
	return 20
65
}
66

67
func (d *DeleteTopicsResponse) version() int16 {
68
	return d.Version
69
}
70

71
func (d *DeleteTopicsResponse) headerVersion() int16 {
72
	return 0
73
}
74

75
func (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
}
83

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.