response_writer.go 679 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package gin
  2. import (
  3. "net/http"
  4. )
  5. type (
  6. ResponseWriter interface {
  7. http.ResponseWriter
  8. Status() int
  9. Written() bool
  10. // private
  11. setStatus(int)
  12. }
  13. responseWriter struct {
  14. http.ResponseWriter
  15. status int
  16. written bool
  17. }
  18. )
  19. func (w *responseWriter) reset(writer http.ResponseWriter) {
  20. w.ResponseWriter = writer
  21. w.status = 0
  22. w.written = false
  23. }
  24. func (w *responseWriter) setStatus(code int) {
  25. w.status = code
  26. }
  27. func (w *responseWriter) WriteHeader(code int) {
  28. w.status = code
  29. w.written = true
  30. w.ResponseWriter.WriteHeader(code)
  31. }
  32. func (w *responseWriter) Status() int {
  33. return w.status
  34. }
  35. func (w *responseWriter) Written() bool {
  36. return w.written
  37. }