request.go 397 B

1234567891011121314151617181920212223
  1. package protocol
  2. type requestEncoder interface {
  3. encoder
  4. key() int16
  5. version() int16
  6. }
  7. type request struct {
  8. correlation_id int32
  9. id string
  10. body requestEncoder
  11. }
  12. func (r *request) encode(pe packetEncoder) {
  13. pe.pushLength32()
  14. pe.putInt16(r.body.key())
  15. pe.putInt16(r.body.version())
  16. pe.putInt32(r.correlation_id)
  17. pe.putString(r.id)
  18. r.body.encode(pe)
  19. pe.pop()
  20. }