blob: 259f18b612606d060f410c183c0c5df6e4ddf5f5 [file] [log] [blame]
Abhay Kumar40252eb2025-10-13 13:25:53 +00001package sarama
2
3import (
4 "time"
5)
6
7type EndTxnResponse struct {
8 Version int16
9 ThrottleTime time.Duration
10 Err KError
11}
12
13func (e *EndTxnResponse) setVersion(v int16) {
14 e.Version = v
15}
16
17func (e *EndTxnResponse) encode(pe packetEncoder) error {
18 pe.putDurationMs(e.ThrottleTime)
19 pe.putKError(e.Err)
20 return nil
21}
22
23func (e *EndTxnResponse) decode(pd packetDecoder, version int16) (err error) {
24 if e.ThrottleTime, err = pd.getDurationMs(); err != nil {
25 return err
26 }
27
28 e.Err, err = pd.getKError()
29 if err != nil {
30 return err
31 }
32
33 return nil
34}
35
36func (e *EndTxnResponse) key() int16 {
37 return apiKeyEndTxn
38}
39
40func (e *EndTxnResponse) version() int16 {
41 return e.Version
42}
43
44func (r *EndTxnResponse) headerVersion() int16 {
45 return 0
46}
47
48func (e *EndTxnResponse) isValidVersion() bool {
49 return e.Version >= 0 && e.Version <= 2
50}
51
52func (e *EndTxnResponse) requiredVersion() KafkaVersion {
53 switch e.Version {
54 case 2:
55 return V2_7_0_0
56 case 1:
57 return V2_0_0_0
58 default:
59 return V0_11_0_0
60 }
61}
62
63func (r *EndTxnResponse) throttleTime() time.Duration {
64 return r.ThrottleTime
65}