quicstreamheader

package
v0.0.0-...-8c25bd3 Latest Latest
Warning

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

Go to latest
Published: Oct 21, 2024 License: GPL-3.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultResponseHeaderHint = hint.MustNewHint("quicstream-default-response-header-v0.0.1")

Functions

func NewHandler

func NewHandler[T RequestHeader](
	encs *encoder.Encoders,
	handler Handler[T],
	errhandler ErrorHandler,
) quicstream.Handler

Types

type BaseHeader

type BaseHeader struct {
	hint.BaseHinter
}

func NewBaseHeader

func NewBaseHeader(ht hint.Hint) BaseHeader

func (BaseHeader) IsValid

func (h BaseHeader) IsValid([]byte) error

func (BaseHeader) JSONMarshaler

func (h BaseHeader) JSONMarshaler() BaseHeaderJSONMarshaler

func (BaseHeader) QUICStreamHeader

func (BaseHeader) QUICStreamHeader()

func (*BaseHeader) UnmarshalJSON

func (h *BaseHeader) UnmarshalJSON(b []byte) error

type BaseHeaderJSONMarshaler

type BaseHeaderJSONMarshaler struct {
	hint.BaseHinter
}

type BaseRequestHeader

type BaseRequestHeader struct {
	BaseHeader
	// contains filtered or unexported fields
}

func NewBaseRequestHeader

func NewBaseRequestHeader(ht hint.Hint, prefix quicstream.HandlerPrefix) BaseRequestHeader

func (BaseRequestHeader) Handler

func (*BaseRequestHeader) UnmarshalJSON

func (h *BaseRequestHeader) UnmarshalJSON(b []byte) error

type BaseResponseHeader

type BaseResponseHeader struct {
	BaseHeader
	// contains filtered or unexported fields
}

func NewBaseResponseHeader

func NewBaseResponseHeader(ht hint.Hint, ok bool, err error) BaseResponseHeader

func (BaseResponseHeader) Err

func (r BaseResponseHeader) Err() error

func (BaseResponseHeader) JSONMarshaler

func (BaseResponseHeader) OK

func (r BaseResponseHeader) OK() bool

func (*BaseResponseHeader) UnmarshalJSON

func (r *BaseResponseHeader) UnmarshalJSON(b []byte) error

type BaseResponseHeaderJSONUnmarshaler

type BaseResponseHeaderJSONUnmarshaler struct {
	Err string `json:"error,omitempty"` //nolint:tagliatelle //...
	OK  bool   `json:"ok"`
}

type BodyType

type BodyType [1]byte
var (
	UnknownBodyType     BodyType = [1]byte{0x00}
	EmptyBodyType       BodyType = [1]byte{0x01}
	FixedLengthBodyType BodyType = [1]byte{0x02}
	StreamBodyType      BodyType = [1]byte{0x03}
)

func (BodyType) IsValid

func (t BodyType) IsValid([]byte) error

type BrokerFunc

type BrokerFunc func(context.Context, *ClientBroker) error

type ClientBroker

type ClientBroker struct {
	// contains filtered or unexported fields
}

func NewClientBroker

func NewClientBroker(
	encs *encoder.Encoders,
	enc encoder.Encoder,
	r io.Reader,
	w io.WriteCloser,
) *ClientBroker

func (ClientBroker) Close

func (broker ClientBroker) Close() error

func (ClientBroker) ReadBody

func (broker ClientBroker) ReadBody(ctx context.Context) (
	bodyType BodyType,
	bodyLength uint64,
	body io.Reader,
	enc encoder.Encoder,
	res ResponseHeader,
	_ error,
)

func (ClientBroker) ReadBodyErr

func (broker ClientBroker) ReadBodyErr(ctx context.Context) (
	bodyType BodyType,
	bodyLength uint64,
	body io.Reader,
	_ error,
)

func (*ClientBroker) ReadResponseHead

func (broker *ClientBroker) ReadResponseHead(ctx context.Context) (enc encoder.Encoder, res ResponseHeader, _ error)

func (ClientBroker) WriteBody

func (broker ClientBroker) WriteBody(
	ctx context.Context,
	bodyType BodyType,
	bodyLength uint64,
	body io.Reader,
) error

func (*ClientBroker) WriteRequestHead

func (broker *ClientBroker) WriteRequestHead(ctx context.Context, header RequestHeader) error

type DataType

type DataType [1]byte
var (
	UnknownDataType        DataType = [1]byte{0x00}
	RequestHeaderDataType  DataType = [1]byte{0x01}
	BodyDataType           DataType = [1]byte{0x02}
	ResponseHeaderDataType DataType = [1]byte{0x03}
)

func (DataType) IsValid

func (t DataType) IsValid([]byte) error

type DefaultResponseHeader

type DefaultResponseHeader struct {
	BaseResponseHeader
}

func NewDefaultResponseHeader

func NewDefaultResponseHeader(ok bool, err error) DefaultResponseHeader

func (DefaultResponseHeader) MarshalJSON

func (h DefaultResponseHeader) MarshalJSON() ([]byte, error)

func (*DefaultResponseHeader) UnmarshalJSON

func (h *DefaultResponseHeader) UnmarshalJSON(b []byte) error

type DialFunc

type DialFunc func(context.Context, quicstream.ConnInfo) (_ StreamFunc, closeConnection func() error, _ error)

func NewDialFunc

func NewDialFunc(
	dialf quicstream.ConnInfoDialFunc,
	encs *encoder.Encoders,
	enc encoder.Encoder,
) DialFunc

type ErrorHandler

type ErrorHandler func(
	context.Context,
	net.Addr,
	*HandlerBroker,
	error,
) (context.Context, error)

type Handler

type Handler[T RequestHeader] func(
	context.Context,
	net.Addr,
	*HandlerBroker,
	T,
) (context.Context, error)

func (Handler[T]) Handler

func (h Handler[T]) Handler(handler Handler[T]) Handler[T]

type HandlerBroker

type HandlerBroker struct {
	// contains filtered or unexported fields
}

func NewHandlerBroker

func NewHandlerBroker(
	encs *encoder.Encoders,
	enc encoder.Encoder,
	r io.Reader,
	w io.Writer,
) *HandlerBroker

func (HandlerBroker) Close

func (broker HandlerBroker) Close() error

func (HandlerBroker) ReadBody

func (broker HandlerBroker) ReadBody(ctx context.Context) (
	bodyType BodyType,
	bodyLength uint64,
	body io.Reader,
	enc encoder.Encoder,
	res ResponseHeader,
	_ error,
)

func (HandlerBroker) ReadBodyErr

func (broker HandlerBroker) ReadBodyErr(ctx context.Context) (
	bodyType BodyType,
	bodyLength uint64,
	body io.Reader,
	_ error,
)

func (*HandlerBroker) ReadRequestHead

func (broker *HandlerBroker) ReadRequestHead(ctx context.Context) (header RequestHeader, _ error)

func (HandlerBroker) WriteBody

func (broker HandlerBroker) WriteBody(
	ctx context.Context,
	bodyType BodyType,
	bodyLength uint64,
	body io.Reader,
) error

func (*HandlerBroker) WriteResponseHead

func (broker *HandlerBroker) WriteResponseHead(ctx context.Context, res ResponseHeader) error

func (*HandlerBroker) WriteResponseHeadOK

func (broker *HandlerBroker) WriteResponseHeadOK(ctx context.Context, ok bool, err error) error
type Header interface {
	util.IsValider
	QUICStreamHeader()
}

type ReadBodyBroker

type ReadBodyBroker interface {
	ReadBody(context.Context) (
		bodyType BodyType,
		bodyLength uint64,
		body io.Reader,
		enc encoder.Encoder,
		res ResponseHeader,
		_ error,
	)
}

type RequestHeader

type RequestHeader interface {
	Header
	Handler() quicstream.HandlerPrefix
}

type ResponseHeader

type ResponseHeader interface {
	Header
	Err() error
	OK() bool
}

type StreamFunc

type StreamFunc func(context.Context, BrokerFunc) error

type WriteBodyBroker

type WriteBodyBroker interface {
	WriteBody(
		ctx context.Context,
		bodyType BodyType,
		bodyLength uint64,
		body io.Reader,
	) error
}

Jump to

Keyboard shortcuts

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