MCPcopy
hub / github.com/segmentio/kafka-go / RoundTrip

Function RoundTrip

protocol/roundtrip.go:8–23  ·  view source on GitHub ↗

RoundTrip sends a request to a kafka broker and returns the response.

(rw io.ReadWriter, apiVersion int16, correlationID int32, clientID string, req Message)

Source from the content-addressed store, hash-verified

6
7// RoundTrip sends a request to a kafka broker and returns the response.
8func RoundTrip(rw io.ReadWriter, apiVersion int16, correlationID int32, clientID string, req Message) (Message, error) {
9 if err := WriteRequest(rw, apiVersion, correlationID, clientID, req); err != nil {
10 return nil, err
11 }
12 if !hasResponse(req) {
13 return nil, nil
14 }
15 id, res, err := ReadResponse(rw, req.ApiKey(), apiVersion)
16 if err != nil {
17 return nil, err
18 }
19 if id != correlationID {
20 return nil, Errorf("correlation id mismatch (expected=%d, found=%d)", correlationID, id)
21 }
22 return res, nil
23}
24
25func hasResponse(msg Message) bool {
26 x, _ := msg.(interface{ HasResponse() bool })

Callers 1

RoundTripMethod · 0.85

Calls 5

WriteRequestFunction · 0.85
hasResponseFunction · 0.85
ReadResponseFunction · 0.85
ErrorfFunction · 0.85
ApiKeyMethod · 0.65

Tested by

no test coverage detected