webtransport

package
v0.0.0-...-0d23b08 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 23, 2024 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ConcreteListener

type ConcreteListener[S Session] interface {
	Accept(context.Context) (S, error)
	Close() error
}

type ConcreteSession

type ConcreteSession[S Stream] interface {
	AcceptStream(context.Context) (S, error)
	OpenStreamSync(context.Context) (S, error)
	CloseWithError(uint64, string) error
}

type Listener

type Listener interface {
	Accept(context.Context) (Session, error)
	Close() error
}

A Listener

type ListenerAdaptor

type ListenerAdaptor[S Session] struct {
	// contains filtered or unexported fields
}

ListenerAdaptor is a shim to convert concrete implementation to a generic one.

func NewListenerAdaptor

func NewListenerAdaptor[S Session](l ConcreteListener[S]) *ListenerAdaptor[S]

func (*ListenerAdaptor[S]) Accept

func (a *ListenerAdaptor[S]) Accept(ctx context.Context) (Session, error)

func (*ListenerAdaptor[S]) Close

func (a *ListenerAdaptor[S]) Close() error

type ReceiveStream

type ReceiveStream interface {
	StreamID() int64
	io.Reader
}

A ReceiveStream is a unidirectional Receive Stream.

type SendStream

type SendStream interface {
	StreamID() int64
	io.Writer
	io.Closer
}

A SendStream is a unidirectional Send Stream.

type Session

type Session interface {
	AcceptStream(context.Context) (Stream, error)
	// AcceptUniStream(context.Context) (ReceiveStream, error)
	OpenStreamSync(context.Context) (Stream, error)
	// OpenUniStreamSync(context.Context) (SendStream, error)
	CloseWithError(uint64, string) error
}

A Session

type SessionAdaptor

type SessionAdaptor[S Stream] struct {
	// contains filtered or unexported fields
}

SessionAdaptor is a shim to convert concrete implementation to a generic one.

func NewSessionAdaptor

func NewSessionAdaptor[S Stream](s ConcreteSession[S]) *SessionAdaptor[S]

func (*SessionAdaptor[S]) AcceptStream

func (a *SessionAdaptor[S]) AcceptStream(ctx context.Context) (Stream, error)

func (*SessionAdaptor[S]) CloseWithError

func (a *SessionAdaptor[S]) CloseWithError(i uint64, msg string) error

func (*SessionAdaptor[S]) OpenStreamSync

func (a *SessionAdaptor[S]) OpenStreamSync(ctx context.Context) (Stream, error)

type Stream

type Stream interface {
	ReceiveStream
	SendStream
}

Stream

type Transport

type Transport struct {
	IncomingBidirectionalStreams streams.ReadableStream[WebTransportBidirectionalStream]
	// contains filtered or unexported fields
}

Transport is the base for implementing a WebTransport. Most of the functionality of a Transport is in the base class to allow implementing variants that share the same interface.

func NewTransport

func NewTransport(s Session) (*Transport, error)

func (*Transport) Close

func (b *Transport) Close(closeInfo WebTransportCloseInfo) error

Close the TransportBase.

func (*Transport) CreateBidirectionalStream

func (b *Transport) CreateBidirectionalStream() (WebTransportBidirectionalStream, error)

CreateBidirectionalStream creates an QuicBidirectionalStream object.

type WebTransportBidirectionalStream

type WebTransportBidirectionalStream struct {
	Readable WebTransportReceiveStream
	Writable WebTransportSendStream
}

func NewWebTransportBidirectionalStream

func NewWebTransportBidirectionalStream(s Stream) WebTransportBidirectionalStream

type WebTransportCloseInfo

type WebTransportCloseInfo struct {
	CloseCode uint64
	Reason    string
}

type WebTransportReceiveStream

type WebTransportReceiveStream struct {
	streams.ReadableStream[[]byte]
	// contains filtered or unexported fields
}

func NewWebTransportReceiveStream

func NewWebTransportReceiveStream(s Stream) WebTransportReceiveStream

func (WebTransportReceiveStream) GetStats

type WebTransportReceiveStreamStats

type WebTransportReceiveStreamStats struct {
	BytesReceived uint64
	BytesRead     uint64
}

type WebTransportSendStream

type WebTransportSendStream struct {
	streams.WritableStream[[]byte]
	// contains filtered or unexported fields
}

func NewWebTransportSendStream

func NewWebTransportSendStream(s Stream) WebTransportSendStream

func (WebTransportSendStream) GetStats

type WebTransportSendStreamStats

type WebTransportSendStreamStats struct {
	BytesWritten      uint64
	BytesSent         uint64
	BytesAcknowledged uint64
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL