blob: 85ffb034b5f712492cf74aeab64954102d31aea8 [file] [log] [blame]
Abhay Kumara2ae5992025-11-10 14:02:24 +00001package sarama
2
3// ConsumerMetadataRequest is used for metadata requests
4type ConsumerMetadataRequest struct {
5 Version int16
6 ConsumerGroup string
7}
8
9func (r *ConsumerMetadataRequest) setVersion(v int16) {
10 r.Version = v
11}
12
13func (r *ConsumerMetadataRequest) encode(pe packetEncoder) error {
14 tmp := new(FindCoordinatorRequest)
15 tmp.CoordinatorKey = r.ConsumerGroup
16 tmp.CoordinatorType = CoordinatorGroup
17 tmp.Version = r.Version
18 return tmp.encode(pe)
19}
20
21func (r *ConsumerMetadataRequest) decode(pd packetDecoder, version int16) (err error) {
22 tmp := new(FindCoordinatorRequest)
23 if err := tmp.decode(pd, version); err != nil {
24 return err
25 }
26 r.ConsumerGroup = tmp.CoordinatorKey
27 return nil
28}
29
30func (r *ConsumerMetadataRequest) key() int16 {
31 return apiKeyFindCoordinator
32}
33
34func (r *ConsumerMetadataRequest) version() int16 {
35 return r.Version
36}
37
38func (r *ConsumerMetadataRequest) headerVersion() int16 {
39 return 1
40}
41
42func (r *ConsumerMetadataRequest) isValidVersion() bool {
43 return r.Version >= 0 && r.Version <= 2
44}
45
46func (r *ConsumerMetadataRequest) requiredVersion() KafkaVersion {
47 switch r.Version {
48 case 2:
49 return V2_0_0_0
50 case 1:
51 return V0_11_0_0
52 default:
53 return V0_8_2_0
54 }
55}