MCPcopy Create free account
hub / github.com/IBM/sarama / encode

Method encode

offset_commit_request.go:129–185  ·  view source on GitHub ↗
(pe packetEncoder)

Source from the content-addressed store, hash-verified

127}
128
129func (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

Callers

nothing calls this directly

Calls 8

putStringMethod · 0.65
putInt32Method · 0.65
PrintlnMethod · 0.65
putInt64Method · 0.65
putNullableStringMethod · 0.65
putArrayLengthMethod · 0.65
encodeMethod · 0.65

Tested by

no test coverage detected