123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- package sarama
- type ControlRecordType int
- const (
-
- ControlRecordAbort ControlRecordType = iota
-
- ControlRecordCommit
-
- ControlRecordUnknown
- )
- type ControlRecord struct {
- Version int16
- CoordinatorEpoch int32
- Type ControlRecordType
- }
- func (cr *ControlRecord) decode(key, value packetDecoder) error {
- var err error
- cr.Version, err = value.getInt16()
- if err != nil {
- return err
- }
- cr.CoordinatorEpoch, err = value.getInt32()
- if err != nil {
- return err
- }
-
-
- cr.Version, err = key.getInt16()
- if err != nil {
- return err
- }
- recordType, err := key.getInt16()
- if err != nil {
- return err
- }
- switch recordType {
- case 0:
- cr.Type = ControlRecordAbort
- case 1:
- cr.Type = ControlRecordCommit
- default:
-
-
- cr.Type = ControlRecordUnknown
- }
- return nil
- }
- func (cr *ControlRecord) encode(key, value packetEncoder) {
- value.putInt16(cr.Version)
- value.putInt32(cr.CoordinatorEpoch)
- key.putInt16(cr.Version)
- switch cr.Type {
- case ControlRecordAbort:
- key.putInt16(0)
- case ControlRecordCommit:
- key.putInt16(1)
- }
- }
|