mirror of
https://gitee.com/johng/gf.git
synced 2024-12-05 05:37:55 +08:00
95 lines
1.7 KiB
Go
95 lines
1.7 KiB
Go
package sarama
|
|
|
|
type ConsumerGroupMemberMetadata struct {
|
|
Version int16
|
|
Topics []string
|
|
UserData []byte
|
|
}
|
|
|
|
func (m *ConsumerGroupMemberMetadata) encode(pe packetEncoder) error {
|
|
pe.putInt16(m.Version)
|
|
|
|
if err := pe.putStringArray(m.Topics); err != nil {
|
|
return err
|
|
}
|
|
|
|
if err := pe.putBytes(m.UserData); err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func (m *ConsumerGroupMemberMetadata) decode(pd packetDecoder) (err error) {
|
|
if m.Version, err = pd.getInt16(); err != nil {
|
|
return
|
|
}
|
|
|
|
if m.Topics, err = pd.getStringArray(); err != nil {
|
|
return
|
|
}
|
|
|
|
if m.UserData, err = pd.getBytes(); err != nil {
|
|
return
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
type ConsumerGroupMemberAssignment struct {
|
|
Version int16
|
|
Topics map[string][]int32
|
|
UserData []byte
|
|
}
|
|
|
|
func (m *ConsumerGroupMemberAssignment) encode(pe packetEncoder) error {
|
|
pe.putInt16(m.Version)
|
|
|
|
if err := pe.putArrayLength(len(m.Topics)); err != nil {
|
|
return err
|
|
}
|
|
|
|
for topic, partitions := range m.Topics {
|
|
if err := pe.putString(topic); err != nil {
|
|
return err
|
|
}
|
|
if err := pe.putInt32Array(partitions); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if err := pe.putBytes(m.UserData); err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func (m *ConsumerGroupMemberAssignment) decode(pd packetDecoder) (err error) {
|
|
if m.Version, err = pd.getInt16(); err != nil {
|
|
return
|
|
}
|
|
|
|
var topicLen int
|
|
if topicLen, err = pd.getArrayLength(); err != nil {
|
|
return
|
|
}
|
|
|
|
m.Topics = make(map[string][]int32, topicLen)
|
|
for i := 0; i < topicLen; i++ {
|
|
var topic string
|
|
if topic, err = pd.getString(); err != nil {
|
|
return
|
|
}
|
|
if m.Topics[topic], err = pd.getInt32Array(); err != nil {
|
|
return
|
|
}
|
|
}
|
|
|
|
if m.UserData, err = pd.getBytes(); err != nil {
|
|
return
|
|
}
|
|
|
|
return nil
|
|
}
|