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

Method encode

record_batch.go:63–104  ·  view source on GitHub ↗
(pe packetEncoder)

Source from the content-addressed store, hash-verified

61}
62
63func (b *RecordBatch) encode(pe packetEncoder) error {
64 if b.Version != 2 {
65 return PacketEncodingError{fmt.Sprintf("unsupported record batch version (%d)", b.Version)}
66 }
67 pe.putInt64(b.FirstOffset)
68 pe.push(&lengthField{})
69 pe.putInt32(b.PartitionLeaderEpoch)
70 pe.putInt8(b.Version)
71 pe.push(newCRC32Field(crcCastagnoli))
72 pe.putInt16(b.computeAttributes())
73 pe.putInt32(b.LastOffsetDelta)
74
75 if err := (Timestamp{&b.FirstTimestamp}).encode(pe); err != nil {
76 return err
77 }
78
79 if err := (Timestamp{&b.MaxTimestamp}).encode(pe); err != nil {
80 return err
81 }
82
83 pe.putInt64(b.ProducerID)
84 pe.putInt16(b.ProducerEpoch)
85 pe.putInt32(b.FirstSequence)
86
87 if err := pe.putArrayLength(len(b.Records)); err != nil {
88 return err
89 }
90
91 if b.compressedRecords == nil {
92 if err := b.encodeRecords(pe); err != nil {
93 return err
94 }
95 }
96 if err := pe.putRawBytes(b.compressedRecords); err != nil {
97 return err
98 }
99
100 if err := pe.pop(); err != nil {
101 return err
102 }
103 return pe.pop()
104}
105
106func (b *RecordBatch) decode(pd packetDecoder) (err error) {
107 if b.FirstOffset, err = pd.getInt64(); err != nil {

Callers

nothing calls this directly

Calls 12

computeAttributesMethod · 0.95
encodeRecordsMethod · 0.95
newCRC32FieldFunction · 0.85
putInt64Method · 0.65
pushMethod · 0.65
putInt32Method · 0.65
putInt8Method · 0.65
putInt16Method · 0.65
encodeMethod · 0.65
putArrayLengthMethod · 0.65
putRawBytesMethod · 0.65
popMethod · 0.65

Tested by

no test coverage detected