| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | 
							- package ray
 
- import (
 
- 	"v2ray.com/core/common"
 
- 	"v2ray.com/core/common/buf"
 
- )
 
- // OutboundRay is a transport interface for outbound connections.
 
- type OutboundRay interface {
 
- 	// OutboundInput provides a stream for the input of the outbound connection.
 
- 	// The outbound connection shall write all the input until it is closed.
 
- 	OutboundInput() InputStream
 
- 	// OutboundOutput provides a stream to retrieve the response from the
 
- 	// outbound connection. The outbound connection shall close the channel
 
- 	// after all responses are received and put into the channel.
 
- 	OutboundOutput() OutputStream
 
- }
 
- // InboundRay is a transport interface for inbound connections.
 
- type InboundRay interface {
 
- 	// InboundInput provides a stream to retrieve the request from client.
 
- 	// The inbound connection shall close the channel after the entire request
 
- 	// is received and put into the channel.
 
- 	InboundInput() OutputStream
 
- 	// InboundOutput provides a stream of data for the inbound connection to write
 
- 	// as response. The inbound connection shall write all the data from the
 
- 	// channel until it is closed.
 
- 	InboundOutput() InputStream
 
- }
 
- // Ray is an internal transport channel between inbound and outbound connection.
 
- type Ray interface {
 
- 	InboundRay
 
- 	OutboundRay
 
- }
 
- type RayStream interface {
 
- 	common.Closable
 
- 	CloseError()
 
- }
 
- type InputStream interface {
 
- 	buf.Reader
 
- 	buf.TimeoutReader
 
- 	RayStream
 
- 	Peek(*buf.Buffer)
 
- }
 
- type OutputStream interface {
 
- 	buf.Writer
 
- 	RayStream
 
- }
 
 
  |