(pe packetEncoder)
| 127 | } |
| 128 | |
| 129 | func (r *OffsetCommitRequest) encode(pe packetEncoder) error { |
| 130 | if r.Version < 0 || r.Version > 8 { |
| 131 | return PacketEncodingError{"invalid or unsupported OffsetCommitRequest version field"} |
| 132 | } |
| 133 | |
| 134 | if err := pe.putString(r.ConsumerGroup); err != nil { |
| 135 | return err |
| 136 | } |
| 137 | |
| 138 | if r.Version >= 1 { |
| 139 | pe.putInt32(r.ConsumerGroupGeneration) |
| 140 | if err := pe.putString(r.ConsumerID); err != nil { |
| 141 | return err |
| 142 | } |
| 143 | } else { |
| 144 | if r.ConsumerGroupGeneration != 0 { |
| 145 | Logger.Println("Non-zero ConsumerGroupGeneration specified for OffsetCommitRequest v0, it will be ignored") |
| 146 | } |
| 147 | if r.ConsumerID != "" { |
| 148 | Logger.Println("Non-empty ConsumerID specified for OffsetCommitRequest v0, it will be ignored") |
| 149 | } |
| 150 | } |
| 151 | |
| 152 | // Version 5 removes RetentionTime, which is now controlled only by a broker configuration. |
| 153 | if r.Version >= 2 && r.Version <= 4 { |
| 154 | pe.putInt64(r.RetentionTime) |
| 155 | } else if r.RetentionTime != 0 { |
| 156 | Logger.Println("Non-zero RetentionTime specified for OffsetCommitRequest version <2, it will be ignored") |
| 157 | } |
| 158 | |
| 159 | if r.Version >= 7 { |
| 160 | if err := pe.putNullableString(r.GroupInstanceId); err != nil { |
| 161 | return err |
| 162 | } |
| 163 | } |
| 164 | |
| 165 | if err := pe.putArrayLength(len(r.blocks)); err != nil { |
| 166 | return err |
| 167 | } |
| 168 | for topic, partitions := range r.blocks { |
| 169 | if err := pe.putString(topic); err != nil { |
| 170 | return err |
| 171 | } |
| 172 | if err := pe.putArrayLength(len(partitions)); err != nil { |
| 173 | return err |
| 174 | } |
| 175 | for partition, block := range partitions { |
| 176 | pe.putInt32(partition) |
| 177 | if err := block.encode(pe, r.Version); err != nil { |
| 178 | return err |
| 179 | } |
| 180 | } |
| 181 | pe.putEmptyTaggedFieldArray() |
| 182 | } |
| 183 | pe.putEmptyTaggedFieldArray() |
| 184 | return nil |
| 185 | } |
| 186 |
nothing calls this directly
no test coverage detected