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

Method decode

fetch_request.go:180–286  ·  view source on GitHub ↗
(pd packetDecoder, version int16)

Source from the content-addressed store, hash-verified

178}
179
180func (r *FetchRequest) decode(pd packetDecoder, version int16) (err error) {
181 r.Version = version
182
183 if _, err = pd.getInt32(); err != nil {
184 return err
185 }
186 if r.MaxWaitTime, err = pd.getInt32(); err != nil {
187 return err
188 }
189 if r.MinBytes, err = pd.getInt32(); err != nil {
190 return err
191 }
192 if r.Version >= 3 {
193 if r.MaxBytes, err = pd.getInt32(); err != nil {
194 return err
195 }
196 }
197 if r.Version >= 4 {
198 isolation, err := pd.getInt8()
199 if err != nil {
200 return err
201 }
202 r.Isolation = IsolationLevel(isolation)
203 }
204 if r.Version >= 7 {
205 r.SessionID, err = pd.getInt32()
206 if err != nil {
207 return err
208 }
209 r.SessionEpoch, err = pd.getInt32()
210 if err != nil {
211 return err
212 }
213 }
214 topicCount, err := pd.getArrayLength()
215 if err != nil {
216 return err
217 }
218 if topicCount < 0 {
219 return errInvalidArrayLength
220 }
221 if topicCount == 0 && r.Version < 7 {
222 return nil
223 }
224 r.blocks = make(map[string]map[int32]*fetchRequestBlock)
225 for range topicCount {
226 topic, err := pd.getString()
227 if err != nil {
228 return err
229 }
230 partitionCount, err := pd.getArrayLength()
231 if err != nil {
232 return err
233 }
234 if partitionCount < 0 {
235 return errInvalidArrayLength
236 }
237 r.blocks[topic] = make(map[int32]*fetchRequestBlock)

Callers

nothing calls this directly

Calls 8

decodeMethod · 0.95
IsolationLevelTypeAlias · 0.85
getInt32Method · 0.65
getInt8Method · 0.65
getArrayLengthMethod · 0.65
getStringMethod · 0.65
getInt32ArrayMethod · 0.65

Tested by

no test coverage detected