github.com/EagleQL/Xray-core@v1.4.3/transport/pipe/reader.go (about) 1 package pipe 2 3 import ( 4 "time" 5 6 "github.com/xtls/xray-core/common/buf" 7 ) 8 9 // Reader is a buf.Reader that reads content from a pipe. 10 type Reader struct { 11 pipe *pipe 12 } 13 14 // ReadMultiBuffer implements buf.Reader. 15 func (r *Reader) ReadMultiBuffer() (buf.MultiBuffer, error) { 16 return r.pipe.ReadMultiBuffer() 17 } 18 19 // ReadMultiBufferTimeout reads content from a pipe within the given duration, or returns buf.ErrTimeout otherwise. 20 func (r *Reader) ReadMultiBufferTimeout(d time.Duration) (buf.MultiBuffer, error) { 21 return r.pipe.ReadMultiBufferTimeout(d) 22 } 23 24 // Interrupt implements common.Interruptible. 25 func (r *Reader) Interrupt() { 26 r.pipe.Interrupt() 27 }