request.go 533 B

1234567891011121314151617181920212223242526
  1. package kafka
  2. // An internal interface satisfied by all of the Request structures
  3. // (MetadataRequest, ProduceRequest, etc).
  4. type RequestEncoder interface {
  5. encoder
  6. key() int16
  7. version() int16
  8. responseDecoder() decoder
  9. }
  10. type request struct {
  11. correlation_id int32
  12. id *string
  13. body RequestEncoder
  14. }
  15. func (r *request) encode(pe packetEncoder) {
  16. pe.pushLength32()
  17. pe.putInt16(r.body.key())
  18. pe.putInt16(r.body.version())
  19. pe.putInt32(r.correlation_id)
  20. pe.putString(r.id)
  21. r.body.encode(pe)
  22. pe.pop()
  23. }