core

package
v0.8.12 Latest Latest
Warning

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

Go to latest
Published: Sep 15, 2022 License: Apache-2.0 Imports: 7 Imported by: 2

Documentation

Index

Constants

View Source
const (
	FlagNext FrameFlag = 1 << (5 + iota)
	FlagComplete
	FlagFollow
	FlagMetadata
	FlagIgnore

	FlagResume  = FlagFollow
	FlagLease   = FlagComplete
	FlagRespond = FlagFollow
)

All frame flags

View Source
const (
	// FrameHeaderLen is len of header.
	FrameHeaderLen = 6
)

Variables

View Source
var (
	ErrFrameLengthExceed  = errors.New("rsocket: frame length is greater than 24bits")
	ErrInvalidTransport   = errors.New("rsocket: invalid Transport")
	ErrInvalidFrame       = errors.New("rsocket: invalid frame")
	ErrInvalidContext     = errors.New("rsocket: invalid context")
	ErrInvalidFrameLength = errors.New("rsocket: invalid frame length")
	ErrReleasedResource   = errors.New("rsocket: resource has been released")
	ErrInvalidEmitter     = errors.New("rsocket: invalid emitter")
	ErrHandlerNil         = errors.New("rsocket: handler cannot be nil")
	ErrHandlerExist       = errors.New("rsocket: handler exists already")
	ErrSendFull           = errors.New("rsocket: frame send channel is full")
)

Error defines.

Functions

func ResetFrameHeader added in v0.7.0

func ResetFrameHeader(b []byte, streamID uint32, frameType FrameType, fg FrameFlag)

ResetFrameHeader resets the original frame header bytes.

func WriteFrameHeader added in v0.7.0

func WriteFrameHeader(w io.Writer, streamID uint32, frameType FrameType, fg FrameFlag) error

WriteFrameHeader writes frame header into a io.Writer.

Types

type BufferedFrame added in v0.7.0

type BufferedFrame interface {
	Frame
	io.WriterTo
	common.Releasable
	// Validate returns error if frame is invalid.
	Validate() error
	// HasFlag returns true if target frame flag is enabled.
	HasFlag(FrameFlag) bool
	// StreamID returns the stream id of current frame.
	StreamID() uint32
}

BufferedFrame is a single message containing a request, response, or protocol processing.

type CustomError

type CustomError interface {
	error
	// ErrorCode returns error code.
	ErrorCode() ErrorCode
	// ErrorData returns error data bytes.
	ErrorData() []byte
}

CustomError provides a method of accessing code and data.

type ErrorCode

type ErrorCode uint32

ErrorCode is code for RSocket error.

const (
	// ErrorCodeInvalidSetup means the setup frame is invalid for the server.
	ErrorCodeInvalidSetup ErrorCode = 0x00000001
	// ErrorCodeUnsupportedSetup means some (or all) of the parameters specified by the client are unsupported by the server.
	ErrorCodeUnsupportedSetup ErrorCode = 0x00000002
	// ErrorCodeRejectedSetup means server rejected the setup, it can specify the reason in the payload.
	ErrorCodeRejectedSetup ErrorCode = 0x00000003
	// ErrorCodeRejectedResume means server rejected the resume, it can specify the reason in the payload.
	ErrorCodeRejectedResume ErrorCode = 0x00000004
	// ErrorCodeConnectionError means the connection is being terminated.
	ErrorCodeConnectionError ErrorCode = 0x00000101
	// ErrorCodeConnectionClose means the connection is being terminated.
	ErrorCodeConnectionClose ErrorCode = 0x00000102
	// ErrorCodeApplicationError means application layer logic generating a Reactive Streams onError event.
	ErrorCodeApplicationError ErrorCode = 0x00000201
	// ErrorCodeRejected means Responder reject it.
	ErrorCodeRejected ErrorCode = 0x00000202
	// ErrorCodeCanceled means the Responder canceled the request but may have started processing it (similar to REJECTED but doesn't guarantee lack of side-effects).
	ErrorCodeCanceled ErrorCode = 0x00000203
	// ErrorCodeInvalid means the request is invalid.
	ErrorCodeInvalid ErrorCode = 0x00000204
)

func (ErrorCode) String

func (e ErrorCode) String() string

type Frame

type Frame interface {
	// FrameHeader returns frame FrameHeader.
	Header() FrameHeader
	// Len returns length of frame.
	Len() int
}

type FrameFlag

type FrameFlag uint16

FrameFlag is flag of frame.

func (FrameFlag) Check

func (f FrameFlag) Check(flag FrameFlag) bool

Check returns true if mask exists.

func (FrameFlag) String

func (f FrameFlag) String() string

type FrameHeader

type FrameHeader [FrameHeaderLen]byte

FrameHeader is the header fo a RSocket frame. RSocket frames begin with a RSocket frame header. It includes StreamID, FrameType and Flags.

func NewFrameHeader

func NewFrameHeader(streamID uint32, frameType FrameType, fg FrameFlag) FrameHeader

NewFrameHeader returns a new frame header.

func ParseFrameHeader

func ParseFrameHeader(bs []byte) FrameHeader

ParseFrameHeader parse a header from bytes.

func (FrameHeader) Bytes

func (h FrameHeader) Bytes() []byte

Bytes returns raw frame header bytes.

func (FrameHeader) Flag

func (h FrameHeader) Flag() FrameFlag

Flag returns flag of a frame.

func (FrameHeader) Resumable

func (h FrameHeader) Resumable() bool

Resumable returns true if frame supports resume.

func (FrameHeader) StreamID

func (h FrameHeader) StreamID() uint32

StreamID returns StreamID.

func (FrameHeader) String

func (h FrameHeader) String() string

func (FrameHeader) Type

func (h FrameHeader) Type() FrameType

Type returns frame type.

func (FrameHeader) WriteTo

func (h FrameHeader) WriteTo(w io.Writer) (int64, error)

WriteTo writes frame header to a writer.

type FrameType

type FrameType uint8

FrameType is type of frame.

const (
	FrameTypeReserved        FrameType = 0x00
	FrameTypeSetup           FrameType = 0x01
	FrameTypeLease           FrameType = 0x02
	FrameTypeKeepalive       FrameType = 0x03
	FrameTypeRequestResponse FrameType = 0x04
	FrameTypeRequestFNF      FrameType = 0x05
	FrameTypeRequestStream   FrameType = 0x06
	FrameTypeRequestChannel  FrameType = 0x07
	FrameTypeRequestN        FrameType = 0x08
	FrameTypeCancel          FrameType = 0x09
	FrameTypePayload         FrameType = 0x0A
	FrameTypeError           FrameType = 0x0B
	FrameTypeMetadataPush    FrameType = 0x0C
	FrameTypeResume          FrameType = 0x0D
	FrameTypeResumeOK        FrameType = 0x0E
	FrameTypeExt             FrameType = 0x3F
)

All frame types

func (FrameType) String

func (f FrameType) String() string

type TrafficCounter

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

TrafficCounter represents a counter of read/write bytes.

func NewTrafficCounter

func NewTrafficCounter() *TrafficCounter

NewTrafficCounter returns a new counter.

func (TrafficCounter) IncReadBytes

func (p TrafficCounter) IncReadBytes(n int)

IncReadBytes increases bytes read.

func (TrafficCounter) IncWriteBytes

func (p TrafficCounter) IncWriteBytes(n int)

IncWriteBytes increases bytes wrote.

func (TrafficCounter) ReadBytes

func (p TrafficCounter) ReadBytes() uint64

ReadBytes returns the number of bytes that have been read.

func (TrafficCounter) WriteBytes

func (p TrafficCounter) WriteBytes() uint64

WriteBytes returns the number of bytes that have been written.

type Version

type Version [2]uint16

Version define the version of protocol. It includes major and minor version.

var DefaultVersion Version = [2]uint16{1, 0}

DefaultVersion is default protocol version.

func NewVersion

func NewVersion(major, minor uint16) Version

NewVersion creates a new Version from major and minor.

func (Version) Bytes

func (p Version) Bytes() []byte

Bytes returns raw bytes of current version.

func (Version) Equals

func (p Version) Equals(version Version) bool

Equals returns true if versions are same.

func (Version) GreaterThan

func (p Version) GreaterThan(version Version) bool

GreaterThan returns true if current version is greater than target.

func (Version) LessThan

func (p Version) LessThan(version Version) bool

LessThan returns true if current version is less than target.

func (Version) Major

func (p Version) Major() uint16

Major returns major version.

func (Version) Minor

func (p Version) Minor() uint16

Minor returns minor version.

func (Version) String

func (p Version) String() string

func (Version) WriteTo

func (p Version) WriteTo(w io.Writer) (n int64, err error)

WriteTo write raw version bytes to a writer.

type WriteableFrame

type WriteableFrame interface {
	Frame
	io.WriterTo
	// Done marks current frame has been sent.
	Done()
	HandleDone(func())
}

WriteableFrame means writeable frame.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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