MCPcopy
hub / github.com/IBM/sarama / versionedDecode

Function versionedDecode

encoder_decoder.go:95–116  ·  view source on GitHub ↗
(buf []byte, in versionedDecoder, version int16, metricRegistry metrics.Registry)

Source from the content-addressed store, hash-verified

93}
94
95func versionedDecode(buf []byte, in versionedDecoder, version int16, metricRegistry metrics.Registry) error {
96 if buf == nil {
97 return nil
98 }
99
100 helper := prepareFlexibleDecoder(&realDecoder{
101 raw: buf,
102 registry: metricRegistry,
103 }, in, version)
104 err := in.decode(helper, version)
105 if err != nil {
106 return err
107 }
108
109 if remaining := helper.remaining(); remaining != 0 {
110 return PacketDecodingError{
111 Info: fmt.Sprintf("invalid length len=%d remaining=%d", len(buf), remaining),
112 }
113 }
114
115 return nil
116}
117
118func prepareFlexibleDecoder(pd *realDecoder, in versionedDecoder, version int16) packetDecoder {
119 if flexibleDecoder, ok := in.(flexibleVersion); ok && flexibleDecoder.isFlexibleVersion(version) {

Calls 3

prepareFlexibleDecoderFunction · 0.85
decodeMethod · 0.65
remainingMethod · 0.65