cubefs

Форк
0
/
api_versions_request.go 
69 строк · 1.4 Кб
1
package sarama
2

3
const defaultClientSoftwareName = "sarama"
4

5
type ApiVersionsRequest struct {
6
	// Version defines the protocol version to use for encode and decode
7
	Version int16
8
	// ClientSoftwareName contains the name of the client.
9
	ClientSoftwareName string
10
	// ClientSoftwareVersion contains the version of the client.
11
	ClientSoftwareVersion string
12
}
13

14
func (r *ApiVersionsRequest) encode(pe packetEncoder) (err error) {
15
	if r.Version >= 3 {
16
		if err := pe.putCompactString(r.ClientSoftwareName); err != nil {
17
			return err
18
		}
19
		if err := pe.putCompactString(r.ClientSoftwareVersion); err != nil {
20
			return err
21
		}
22
		pe.putEmptyTaggedFieldArray()
23
	}
24

25
	return nil
26
}
27

28
func (r *ApiVersionsRequest) decode(pd packetDecoder, version int16) (err error) {
29
	r.Version = version
30
	if r.Version >= 3 {
31
		if r.ClientSoftwareName, err = pd.getCompactString(); err != nil {
32
			return err
33
		}
34
		if r.ClientSoftwareVersion, err = pd.getCompactString(); err != nil {
35
			return err
36
		}
37
		if _, err := pd.getEmptyTaggedFieldArray(); err != nil {
38
			return err
39
		}
40
	}
41

42
	return nil
43
}
44

45
func (r *ApiVersionsRequest) key() int16 {
46
	return 18
47
}
48

49
func (r *ApiVersionsRequest) version() int16 {
50
	return r.Version
51
}
52

53
func (r *ApiVersionsRequest) headerVersion() int16 {
54
	if r.Version >= 3 {
55
		return 2
56
	}
57
	return 1
58
}
59

60
func (r *ApiVersionsRequest) requiredVersion() KafkaVersion {
61
	switch r.Version {
62
	case 0:
63
		return V0_10_0_0
64
	case 3:
65
		return V2_4_0_0
66
	default:
67
		return V0_10_0_0
68
	}
69
}
70

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

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

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

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