1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- package leavegroup
- import "github.com/segmentio/kafka-go/protocol"
- func init() {
- protocol.Register(&Request{}, &Response{})
- }
- type Request struct {
- // We need at least one tagged field to indicate that this is a "flexible" message
- // type.
- _ struct{} `kafka:"min=v4,max=v4,tag"`
- GroupID string `kafka:"min=v0,max=v2|min=v3,max=v4,compact"`
- MemberID string `kafka:"min=v0,max=v2"`
- Members []RequestMember `kafka:"min=v3,max=v4"`
- }
- func (r *Request) Prepare(apiVersion int16) {
- if apiVersion < 3 {
- if len(r.Members) > 0 {
- r.MemberID = r.Members[0].MemberID
- }
- }
- }
- type RequestMember struct {
- // We need at least one tagged field to indicate that this is a "flexible" message
- // type.
- _ struct{} `kafka:"min=v4,max=v4,tag"`
- MemberID string `kafka:"min=v3,max=v3|min=v4,max=v4,compact"`
- GroupInstanceID string `kafka:"min=v3,max=v3,nullable|min=v4,max=v4,nullable,compact"`
- }
- func (r *Request) ApiKey() protocol.ApiKey { return protocol.LeaveGroup }
- func (r *Request) Group() string { return r.GroupID }
- var (
- _ protocol.GroupMessage = (*Request)(nil)
- _ protocol.PreparedMessage = (*Request)(nil)
- )
- type Response struct {
- // We need at least one tagged field to indicate that this is a "flexible" message
- // type.
- _ struct{} `kafka:"min=v4,max=v4,tag"`
- ErrorCode int16 `kafka:"min=v0,max=v4"`
- ThrottleTimeMS int32 `kafka:"min=v1,max=v4"`
- Members []ResponseMember `kafka:"min=v3,max=v4"`
- }
- type ResponseMember struct {
- // We need at least one tagged field to indicate that this is a "flexible" message
- // type.
- _ struct{} `kafka:"min=v4,max=v4,tag"`
- MemberID string `kafka:"min=v3,max=v3|min=v4,max=v4,compact"`
- GroupInstanceID string `kafka:"min=v3,max=v3,nullable|min=v4,max=v4,nullable,compact"`
- ErrorCode int16 `kafka:"min=v3,max=v4"`
- }
- func (r *Response) ApiKey() protocol.ApiKey { return protocol.LeaveGroup }
|