cubefs
115 строк · 2.0 Кб
1package sarama2
3type DescribeConfigsRequest struct {4Version int165Resources []*ConfigResource6IncludeSynonyms bool7}
8
9type ConfigResource struct {10Type ConfigResourceType
11Name string12ConfigNames []string13}
14
15func (r *DescribeConfigsRequest) encode(pe packetEncoder) error {16if err := pe.putArrayLength(len(r.Resources)); err != nil {17return err18}19
20for _, c := range r.Resources {21pe.putInt8(int8(c.Type))22if err := pe.putString(c.Name); err != nil {23return err24}25
26if len(c.ConfigNames) == 0 {27pe.putInt32(-1)28continue29}30if err := pe.putStringArray(c.ConfigNames); err != nil {31return err32}33}34
35if r.Version >= 1 {36pe.putBool(r.IncludeSynonyms)37}38
39return nil40}
41
42func (r *DescribeConfigsRequest) decode(pd packetDecoder, version int16) (err error) {43n, err := pd.getArrayLength()44if err != nil {45return err46}47
48r.Resources = make([]*ConfigResource, n)49
50for i := 0; i < n; i++ {51r.Resources[i] = &ConfigResource{}52t, err := pd.getInt8()53if err != nil {54return err55}56r.Resources[i].Type = ConfigResourceType(t)57name, err := pd.getString()58if err != nil {59return err60}61r.Resources[i].Name = name62
63confLength, err := pd.getArrayLength()64if err != nil {65return err66}67
68if confLength == -1 {69continue70}71
72cfnames := make([]string, confLength)73for i := 0; i < confLength; i++ {74s, err := pd.getString()75if err != nil {76return err77}78cfnames[i] = s79}80r.Resources[i].ConfigNames = cfnames81}82r.Version = version83if r.Version >= 1 {84b, err := pd.getBool()85if err != nil {86return err87}88r.IncludeSynonyms = b89}90
91return nil92}
93
94func (r *DescribeConfigsRequest) key() int16 {95return 3296}
97
98func (r *DescribeConfigsRequest) version() int16 {99return r.Version100}
101
102func (r *DescribeConfigsRequest) headerVersion() int16 {103return 1104}
105
106func (r *DescribeConfigsRequest) requiredVersion() KafkaVersion {107switch r.Version {108case 1:109return V1_1_0_0110case 2:111return V2_0_0_0112default:113return V0_11_0_0114}115}
116