123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- package sarama
- //ConsumerGroupMemberMetadata holds the metadata for consumer group
- 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
- }
- //ConsumerGroupMemberAssignment holds the member assignment for a consume group
- 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
- }
|