cubefs

Форк
0
/
acl_create_request.go 
89 строк · 1.6 Кб
1
package sarama
2

3
// CreateAclsRequest is an acl creation request
4
type CreateAclsRequest struct {
5
	Version      int16
6
	AclCreations []*AclCreation
7
}
8

9
func (c *CreateAclsRequest) encode(pe packetEncoder) error {
10
	if err := pe.putArrayLength(len(c.AclCreations)); err != nil {
11
		return err
12
	}
13

14
	for _, aclCreation := range c.AclCreations {
15
		if err := aclCreation.encode(pe, c.Version); err != nil {
16
			return err
17
		}
18
	}
19

20
	return nil
21
}
22

23
func (c *CreateAclsRequest) decode(pd packetDecoder, version int16) (err error) {
24
	c.Version = version
25
	n, err := pd.getArrayLength()
26
	if err != nil {
27
		return err
28
	}
29

30
	c.AclCreations = make([]*AclCreation, n)
31

32
	for i := 0; i < n; i++ {
33
		c.AclCreations[i] = new(AclCreation)
34
		if err := c.AclCreations[i].decode(pd, version); err != nil {
35
			return err
36
		}
37
	}
38

39
	return nil
40
}
41

42
func (c *CreateAclsRequest) key() int16 {
43
	return 30
44
}
45

46
func (c *CreateAclsRequest) version() int16 {
47
	return c.Version
48
}
49

50
func (c *CreateAclsRequest) headerVersion() int16 {
51
	return 1
52
}
53

54
func (c *CreateAclsRequest) requiredVersion() KafkaVersion {
55
	switch c.Version {
56
	case 1:
57
		return V2_0_0_0
58
	default:
59
		return V0_11_0_0
60
	}
61
}
62

63
// AclCreation is a wrapper around Resource and Acl type
64
type AclCreation struct {
65
	Resource
66
	Acl
67
}
68

69
func (a *AclCreation) encode(pe packetEncoder, version int16) error {
70
	if err := a.Resource.encode(pe, version); err != nil {
71
		return err
72
	}
73
	if err := a.Acl.encode(pe); err != nil {
74
		return err
75
	}
76

77
	return nil
78
}
79

80
func (a *AclCreation) decode(pd packetDecoder, version int16) (err error) {
81
	if err := a.Resource.decode(pd, version); err != nil {
82
		return err
83
	}
84
	if err := a.Acl.decode(pd, version); err != nil {
85
		return err
86
	}
87

88
	return nil
89
}
90

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

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

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

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