request.go 494 B

1234567891011121314151617181920212223242526272829
  1. package sarama
  2. type requestEncoder interface {
  3. encoder
  4. key() int16
  5. version() int16
  6. }
  7. type request struct {
  8. correlationID int32
  9. id string
  10. body requestEncoder
  11. }
  12. func (r *request) encode(pe packetEncoder) (err error) {
  13. pe.push(&lengthField{})
  14. pe.putInt16(r.body.key())
  15. pe.putInt16(r.body.version())
  16. pe.putInt32(r.correlationID)
  17. err = pe.putString(r.id)
  18. if err != nil {
  19. return err
  20. }
  21. err = r.body.encode(pe)
  22. if err != nil {
  23. return err
  24. }
  25. return pe.pop()
  26. }