diff --git a/transport/ray/direct.go b/transport/ray/direct.go new file mode 100644 index 000000000..b70a0c465 --- /dev/null +++ b/transport/ray/direct.go @@ -0,0 +1,37 @@ +package ray + +import ( + "github.com/v2ray/v2ray-core/common/alloc" +) + +const ( + bufferSize = 16 +) + +func NewRay() Ray { + return &directRay{ + Input: make(chan *alloc.Buffer, bufferSize), + Output: make(chan *alloc.Buffer, bufferSize), + } +} + +type directRay struct { + Input chan *alloc.Buffer + Output chan *alloc.Buffer +} + +func (ray *directRay) OutboundInput() <-chan *alloc.Buffer { + return ray.Input +} + +func (ray *directRay) OutboundOutput() chan<- *alloc.Buffer { + return ray.Output +} + +func (ray *directRay) InboundInput() chan<- *alloc.Buffer { + return ray.Input +} + +func (ray *directRay) InboundOutput() <-chan *alloc.Buffer { + return ray.Output +} diff --git a/transport/ray/ray.go b/transport/ray/ray.go index 1a8bec2d4..c6a5ef0d3 100644 --- a/transport/ray/ray.go +++ b/transport/ray/ray.go @@ -4,17 +4,6 @@ import ( "github.com/v2ray/v2ray-core/common/alloc" ) -const ( - bufferSize = 16 -) - -func NewRay() Ray { - return &directRay{ - Input: make(chan *alloc.Buffer, bufferSize), - Output: make(chan *alloc.Buffer, bufferSize), - } -} - // OutboundRay is a transport interface for outbound connections. type OutboundRay interface { // OutboundInput provides a stream for the input of the outbound connection. @@ -45,24 +34,3 @@ type Ray interface { InboundRay OutboundRay } - -type directRay struct { - Input chan *alloc.Buffer - Output chan *alloc.Buffer -} - -func (ray *directRay) OutboundInput() <-chan *alloc.Buffer { - return ray.Input -} - -func (ray *directRay) OutboundOutput() chan<- *alloc.Buffer { - return ray.Output -} - -func (ray *directRay) InboundInput() chan<- *alloc.Buffer { - return ray.Input -} - -func (ray *directRay) InboundOutput() <-chan *alloc.Buffer { - return ray.Output -}