roundtripper.go 872 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package request
  2. import (
  3. "context"
  4. "io"
  5. "github.com/v2fly/v2ray-core/v5/common"
  6. )
  7. type RoundTripperClient interface {
  8. Tripper
  9. TransportClientAssemblyReceiver
  10. }
  11. type RoundTripperServer interface {
  12. common.Runnable
  13. TransportServerAssemblyReceiver
  14. }
  15. type Tripper interface {
  16. RoundTrip(ctx context.Context, req Request, opts ...RoundTripperOption) (resp Response, err error)
  17. }
  18. type TripperReceiver interface {
  19. OnRoundTrip(ctx context.Context, req Request, opts ...RoundTripperOption) (resp Response, err error)
  20. }
  21. type RoundTripperOption interface {
  22. RoundTripperOption()
  23. }
  24. type Request struct {
  25. Data []byte
  26. ConnectionTag []byte
  27. }
  28. type Response struct {
  29. Data []byte
  30. }
  31. type OptionSupportsStreamingResponse interface {
  32. RoundTripperOption
  33. GetResponseWriter() io.Writer
  34. }
  35. type OptionSupportsStreamingResponseExtensionFlusher interface {
  36. Flush()
  37. }