|
|
package utils |
|
|
|
|
|
import ( |
|
|
"context" |
|
|
"time" |
|
|
|
|
|
"github.com/apernet/quic-go" |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
type QStream struct { |
|
|
Stream quic.Stream |
|
|
} |
|
|
|
|
|
func (s *QStream) StreamID() quic.StreamID { |
|
|
return s.Stream.StreamID() |
|
|
} |
|
|
|
|
|
func (s *QStream) Read(p []byte) (n int, err error) { |
|
|
return s.Stream.Read(p) |
|
|
} |
|
|
|
|
|
func (s *QStream) CancelRead(code quic.StreamErrorCode) { |
|
|
s.Stream.CancelRead(code) |
|
|
} |
|
|
|
|
|
func (s *QStream) SetReadDeadline(t time.Time) error { |
|
|
return s.Stream.SetReadDeadline(t) |
|
|
} |
|
|
|
|
|
func (s *QStream) Write(p []byte) (n int, err error) { |
|
|
return s.Stream.Write(p) |
|
|
} |
|
|
|
|
|
func (s *QStream) Close() error { |
|
|
s.Stream.CancelRead(0) |
|
|
return s.Stream.Close() |
|
|
} |
|
|
|
|
|
func (s *QStream) CancelWrite(code quic.StreamErrorCode) { |
|
|
s.Stream.CancelWrite(code) |
|
|
} |
|
|
|
|
|
func (s *QStream) Context() context.Context { |
|
|
return s.Stream.Context() |
|
|
} |
|
|
|
|
|
func (s *QStream) SetWriteDeadline(t time.Time) error { |
|
|
return s.Stream.SetWriteDeadline(t) |
|
|
} |
|
|
|
|
|
func (s *QStream) SetDeadline(t time.Time) error { |
|
|
return s.Stream.SetDeadline(t) |
|
|
} |
|
|
|