in list_groups_response.go [56:137]
func (r *ListGroupsResponse) decode(pd packetDecoder, version int16) error {
r.Version = version
if r.Version >= 1 {
var err error
if r.ThrottleTime, err = pd.getInt32(); err != nil {
return err
}
}
kerr, err := pd.getInt16()
if err != nil {
return err
}
r.Err = KError(kerr)
var n int
if r.Version <= 2 {
n, err = pd.getArrayLength()
} else {
n, err = pd.getCompactArrayLength()
}
if err != nil {
return err
}
for i := 0; i < n; i++ {
if i == 0 {
r.Groups = make(map[string]string)
if r.Version >= 4 {
r.GroupsData = make(map[string]GroupData)
}
}
var groupId, protocolType string
if r.Version <= 2 {
groupId, err = pd.getString()
if err != nil {
return err
}
protocolType, err = pd.getString()
if err != nil {
return err
}
} else {
groupId, err = pd.getCompactString()
if err != nil {
return err
}
protocolType, err = pd.getCompactString()
if err != nil {
return err
}
}
r.Groups[groupId] = protocolType
if r.Version >= 4 {
groupState, err := pd.getCompactString()
if err != nil {
return err
}
r.GroupsData[groupId] = GroupData{
GroupState: groupState,
}
}
if r.Version >= 3 {
if _, err = pd.getEmptyTaggedFieldArray(); err != nil {
return err
}
}
}
if r.Version >= 3 {
if _, err = pd.getEmptyTaggedFieldArray(); err != nil {
return err
}
}
return nil
}