Documentation ¶
Index ¶
- Constants
- Variables
- func ResetFrameHeader(b []byte, streamID uint32, frameType FrameType, fg FrameFlag)
- func WriteFrameHeader(w io.Writer, streamID uint32, frameType FrameType, fg FrameFlag) error
- type BufferedFrame
- type CustomError
- type ErrorCode
- type Frame
- type FrameFlag
- type FrameHeader
- type FrameType
- type TrafficCounter
- type Version
- func (p Version) Bytes() []byte
- func (p Version) Equals(version Version) bool
- func (p Version) GreaterThan(version Version) bool
- func (p Version) LessThan(version Version) bool
- func (p Version) Major() uint16
- func (p Version) Minor() uint16
- func (p Version) String() string
- func (p Version) WriteTo(w io.Writer) (n int64, err error)
- type WriteableFrame
Constants ¶
const ( FlagNext FrameFlag = 1 << (5 + iota) FlagComplete FlagFollow FlagMetadata FlagIgnore FlagResume = FlagFollow FlagLease = FlagComplete FlagRespond = FlagFollow )
All frame flags
const (
// FrameHeaderLen is len of header.
FrameHeaderLen = 6
)
Variables ¶
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
ResetFrameHeader resets the original frame header bytes.
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 )
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.
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) Resumable ¶
func (h FrameHeader) Resumable() bool
Resumable returns true if frame supports resume.
func (FrameHeader) String ¶
func (h FrameHeader) String() string
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
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.
func NewVersion ¶
NewVersion creates a new Version from major and minor.
func (Version) GreaterThan ¶
GreaterThan returns true if current version is greater than target.
type WriteableFrame ¶
type WriteableFrame interface { Frame io.WriterTo // Done marks current frame has been sent. Done() HandleDone(func()) }
WriteableFrame means writeable frame.