Documentation ¶
Index ¶
- Constants
- func CalcPayloadFrameSize(data, metadata []byte) int
- type BaseFrame
- func (p *BaseFrame) Body() *common.ByteBuff
- func (p *BaseFrame) Bytes() []byte
- func (p *BaseFrame) Header() FrameHeader
- func (p *BaseFrame) IsResumable() bool
- func (p *BaseFrame) Len() int
- func (p *BaseFrame) Release()
- func (p *BaseFrame) SetBody(body *common.ByteBuff)
- func (p *BaseFrame) SetHeader(h FrameHeader)
- func (p *BaseFrame) WriteTo(w io.Writer) (n int64, err error)
- type Frame
- type FrameCancel
- type FrameError
- type FrameFNF
- type FrameFlag
- type FrameHeader
- type FrameKeepalive
- type FrameLease
- type FrameMetadataPush
- func (p *FrameMetadataPush) Data() []byte
- func (p *FrameMetadataPush) DataUTF8() (data string)
- func (p *FrameMetadataPush) Metadata() ([]byte, bool)
- func (p *FrameMetadataPush) MetadataUTF8() (metadata string, ok bool)
- func (p *FrameMetadataPush) String() string
- func (p *FrameMetadataPush) Validate() (err error)
- type FramePayload
- type FrameRequestChannel
- func (p *FrameRequestChannel) Data() []byte
- func (p *FrameRequestChannel) DataUTF8() string
- func (p *FrameRequestChannel) InitialRequestN() uint32
- func (p *FrameRequestChannel) Metadata() ([]byte, bool)
- func (p *FrameRequestChannel) MetadataUTF8() (metadata string, ok bool)
- func (p *FrameRequestChannel) String() string
- func (p *FrameRequestChannel) Validate() (err error)
- type FrameRequestN
- type FrameRequestResponse
- func (p *FrameRequestResponse) Data() []byte
- func (p *FrameRequestResponse) DataUTF8() string
- func (p *FrameRequestResponse) Metadata() ([]byte, bool)
- func (p *FrameRequestResponse) MetadataUTF8() (metadata string, ok bool)
- func (p *FrameRequestResponse) String() string
- func (p *FrameRequestResponse) Validate() (err error)
- type FrameRequestStream
- func (p *FrameRequestStream) Data() []byte
- func (p *FrameRequestStream) DataUTF8() string
- func (p *FrameRequestStream) InitialRequestN() uint32
- func (p *FrameRequestStream) Metadata() ([]byte, bool)
- func (p *FrameRequestStream) MetadataUTF8() (metadata string, ok bool)
- func (p *FrameRequestStream) String() string
- func (p *FrameRequestStream) Validate() (err error)
- type FrameResume
- type FrameResumeOK
- type FrameSetup
- func (p *FrameSetup) Data() []byte
- func (p *FrameSetup) DataMimeType() (mime string)
- func (p *FrameSetup) DataUTF8() string
- func (p *FrameSetup) MaxLifetime() time.Duration
- func (p *FrameSetup) Metadata() ([]byte, bool)
- func (p *FrameSetup) MetadataMimeType() string
- func (p *FrameSetup) MetadataUTF8() (metadata string, ok bool)
- func (p *FrameSetup) String() string
- func (p *FrameSetup) TimeBetweenKeepalive() time.Duration
- func (p *FrameSetup) Token() []byte
- func (p *FrameSetup) Validate() (err error)
- func (p *FrameSetup) Version() common.Version
- type FrameType
Constants ¶
const ( FlagNext FrameFlag = 1 << (5 + iota) FlagComplete FlagFollow FlagMetadata FlagIgnore FlagResume = FlagFollow FlagLease = FlagComplete FlagRespond = FlagFollow )
All frame flags
const (
// HeaderLen is len of header.
HeaderLen = 6
)
Variables ¶
This section is empty.
Functions ¶
func CalcPayloadFrameSize ¶
CalcPayloadFrameSize returns payload frame size.
Types ¶
type BaseFrame ¶
type BaseFrame struct {
// contains filtered or unexported fields
}
BaseFrame is basic frame implementation.
func NewBaseFrame ¶
func NewBaseFrame(h FrameHeader, body *common.ByteBuff) *BaseFrame
NewBaseFrame returns a new BaseFrame.
func (*BaseFrame) IsResumable ¶
IsResumable returns true if frame supports resume.
func (*BaseFrame) SetHeader ¶
func (p *BaseFrame) SetHeader(h FrameHeader)
SetHeader set frame header.
type Frame ¶
type Frame interface { io.WriterTo // Header returns frame FrameHeader. Header() FrameHeader Body() *common.ByteBuff // Release release resources of frame. Release() // Len returns length of frame. Len() int // Validate returns error if frame is invalid. Validate() error // SetHeader set frame header. SetHeader(h FrameHeader) // SetBody set frame body. SetBody(body *common.ByteBuff) // Bytes encodes and returns frame in bytes. Bytes() []byte // IsResumable returns true if frame supports resume. IsResumable() bool }
Frame is a single message containing a request, response, or protocol processing.
func NewFromBase ¶
NewFromBase creates a frame from a BaseFrame.
type FrameCancel ¶
type FrameCancel struct {
*BaseFrame
}
FrameCancel is frame of cancel.
func NewFrameCancel ¶
func NewFrameCancel(sid uint32) *FrameCancel
NewFrameCancel returns a new cancel frame.
func (*FrameCancel) String ¶
func (p *FrameCancel) String() string
func (*FrameCancel) Validate ¶
func (p *FrameCancel) Validate() (err error)
Validate returns error if frame is invalid.
type FrameError ¶
type FrameError struct {
*BaseFrame
}
FrameError is error frame.
func NewFrameError ¶
func NewFrameError(streamID uint32, code common.ErrorCode, data []byte) *FrameError
NewFrameError returns a new error frame.
func (*FrameError) Error ¶
func (p *FrameError) Error() string
func (*FrameError) ErrorCode ¶
func (p *FrameError) ErrorCode() common.ErrorCode
ErrorCode returns error code.
func (*FrameError) ErrorData ¶
func (p *FrameError) ErrorData() []byte
ErrorData returns error data bytes.
func (*FrameError) Validate ¶
func (p *FrameError) Validate() (err error)
Validate returns error if frame is invalid.
type FrameFNF ¶
type FrameFNF struct {
*BaseFrame
}
FrameFNF is fire and forget frame.
func NewFrameFNF ¶
NewFrameFNF returns a new fire and forget frame.
func (*FrameFNF) MetadataUTF8 ¶
MetadataUTF8 returns metadata as UTF8 string.
type FrameFlag ¶
type FrameFlag uint16
FrameFlag is flag of frame.
type FrameHeader ¶
FrameHeader is the header fo a RSocke frame. RSocket frames begin with a RSocket Frame Header. It includes StreamID, FrameType and Flags.
func NewFrameHeader ¶
func NewFrameHeader(streamID uint32, frameType FrameType, flags ...FrameFlag) FrameHeader
NewFrameHeader returns a new frame header.
func ParseFrameHeader ¶
func ParseFrameHeader(bs []byte) FrameHeader
ParseFrameHeader parse a header from bytes.
func (FrameHeader) String ¶
func (p FrameHeader) String() string
type FrameKeepalive ¶
type FrameKeepalive struct {
*BaseFrame
}
FrameKeepalive is keepalive frame.
func NewFrameKeepalive ¶
func NewFrameKeepalive(position uint64, data []byte, respond bool) *FrameKeepalive
NewFrameKeepalive returns a new keepalive frame.
func (*FrameKeepalive) LastReceivedPosition ¶
func (p *FrameKeepalive) LastReceivedPosition() uint64
LastReceivedPosition returns last received position.
func (*FrameKeepalive) String ¶
func (p *FrameKeepalive) String() string
func (*FrameKeepalive) Validate ¶
func (p *FrameKeepalive) Validate() (err error)
Validate returns error if frame is invalid.
type FrameLease ¶
type FrameLease struct {
*BaseFrame
}
FrameLease is lease frame.
func (*FrameLease) Metadata ¶
func (p *FrameLease) Metadata() []byte
Metadata returns metadata bytes.
func (*FrameLease) NumberOfRequests ¶
func (p *FrameLease) NumberOfRequests() uint32
NumberOfRequests returns number of requests.
func (*FrameLease) String ¶
func (p *FrameLease) String() string
func (*FrameLease) TimeToLive ¶
func (p *FrameLease) TimeToLive() time.Duration
TimeToLive returns time to live duration.
func (*FrameLease) Validate ¶
func (p *FrameLease) Validate() (err error)
Validate returns error if frame is invalid.
type FrameMetadataPush ¶
type FrameMetadataPush struct {
*BaseFrame
}
FrameMetadataPush is metadata push frame.
func NewFrameMetadataPush ¶
func NewFrameMetadataPush(metadata []byte) *FrameMetadataPush
NewFrameMetadataPush returns a new metadata push frame.
func (*FrameMetadataPush) DataUTF8 ¶
func (p *FrameMetadataPush) DataUTF8() (data string)
DataUTF8 returns data as UTF8 string.
func (*FrameMetadataPush) Metadata ¶
func (p *FrameMetadataPush) Metadata() ([]byte, bool)
Metadata returns metadata bytes.
func (*FrameMetadataPush) MetadataUTF8 ¶
func (p *FrameMetadataPush) MetadataUTF8() (metadata string, ok bool)
MetadataUTF8 returns metadata as UTF8 string.
func (*FrameMetadataPush) String ¶
func (p *FrameMetadataPush) String() string
func (*FrameMetadataPush) Validate ¶
func (p *FrameMetadataPush) Validate() (err error)
Validate returns error if frame is invalid.
type FramePayload ¶
type FramePayload struct {
*BaseFrame
}
FramePayload is payload frame.
func NewFramePayload ¶
func NewFramePayload(id uint32, data, metadata []byte, flags ...FrameFlag) *FramePayload
NewFramePayload returns a new payload frame.
func (*FramePayload) DataUTF8 ¶
func (p *FramePayload) DataUTF8() string
DataUTF8 returns data as UTF8 string.
func (*FramePayload) Metadata ¶
func (p *FramePayload) Metadata() ([]byte, bool)
Metadata returns metadata bytes.
func (*FramePayload) MetadataUTF8 ¶
func (p *FramePayload) MetadataUTF8() (metadata string, ok bool)
MetadataUTF8 returns metadata as UTF8 string.
func (*FramePayload) String ¶
func (p *FramePayload) String() string
func (*FramePayload) Validate ¶
func (p *FramePayload) Validate() (err error)
Validate returns error if frame is invalid.
type FrameRequestChannel ¶
type FrameRequestChannel struct {
*BaseFrame
}
FrameRequestChannel is frame for RequestChannel.
func NewFrameRequestChannel ¶
func NewFrameRequestChannel(sid uint32, n uint32, data, metadata []byte, flags ...FrameFlag) *FrameRequestChannel
NewFrameRequestChannel returns a new RequestChannel frame.
func (*FrameRequestChannel) Data ¶
func (p *FrameRequestChannel) Data() []byte
Data returns data bytes.
func (*FrameRequestChannel) DataUTF8 ¶
func (p *FrameRequestChannel) DataUTF8() string
DataUTF8 returns data as UTF8 string.
func (*FrameRequestChannel) InitialRequestN ¶
func (p *FrameRequestChannel) InitialRequestN() uint32
InitialRequestN returns initial N.
func (*FrameRequestChannel) Metadata ¶
func (p *FrameRequestChannel) Metadata() ([]byte, bool)
Metadata returns metadata bytes.
func (*FrameRequestChannel) MetadataUTF8 ¶
func (p *FrameRequestChannel) MetadataUTF8() (metadata string, ok bool)
MetadataUTF8 returns metadata as UTF8 string.
func (*FrameRequestChannel) String ¶
func (p *FrameRequestChannel) String() string
func (*FrameRequestChannel) Validate ¶
func (p *FrameRequestChannel) Validate() (err error)
Validate returns error if frame is invalid.
type FrameRequestN ¶
type FrameRequestN struct {
*BaseFrame
}
FrameRequestN is RequestN frame.
func NewFrameRequestN ¶
func NewFrameRequestN(sid, n uint32, flags ...FrameFlag) *FrameRequestN
NewFrameRequestN returns a new RequestN frame.
func (*FrameRequestN) String ¶
func (p *FrameRequestN) String() string
func (*FrameRequestN) Validate ¶
func (p *FrameRequestN) Validate() (err error)
Validate returns error if frame is invalid.
type FrameRequestResponse ¶
type FrameRequestResponse struct {
*BaseFrame
}
FrameRequestResponse is frame for requesting single response.
func NewFrameRequestResponse ¶
func NewFrameRequestResponse(id uint32, data, metadata []byte, flags ...FrameFlag) *FrameRequestResponse
NewFrameRequestResponse returns a new RequestResponse frame.
func (*FrameRequestResponse) Data ¶
func (p *FrameRequestResponse) Data() []byte
Data returns data bytes.
func (*FrameRequestResponse) DataUTF8 ¶
func (p *FrameRequestResponse) DataUTF8() string
DataUTF8 returns data as UTF8 string.
func (*FrameRequestResponse) Metadata ¶
func (p *FrameRequestResponse) Metadata() ([]byte, bool)
Metadata returns metadata bytes.
func (*FrameRequestResponse) MetadataUTF8 ¶
func (p *FrameRequestResponse) MetadataUTF8() (metadata string, ok bool)
MetadataUTF8 returns metadata as UTF8 string.
func (*FrameRequestResponse) String ¶
func (p *FrameRequestResponse) String() string
func (*FrameRequestResponse) Validate ¶
func (p *FrameRequestResponse) Validate() (err error)
Validate returns error if frame is invalid.
type FrameRequestStream ¶
type FrameRequestStream struct {
*BaseFrame
}
FrameRequestStream is frame for requesting a completable stream.
func NewFrameRequestStream ¶
func NewFrameRequestStream(id uint32, n uint32, data, metadata []byte, flags ...FrameFlag) *FrameRequestStream
NewFrameRequestStream returns a new request stream frame.
func (*FrameRequestStream) Data ¶
func (p *FrameRequestStream) Data() []byte
Data returns data bytes.
func (*FrameRequestStream) DataUTF8 ¶
func (p *FrameRequestStream) DataUTF8() string
DataUTF8 returns data as UTF8 string.
func (*FrameRequestStream) InitialRequestN ¶
func (p *FrameRequestStream) InitialRequestN() uint32
InitialRequestN returns initial request N.
func (*FrameRequestStream) Metadata ¶
func (p *FrameRequestStream) Metadata() ([]byte, bool)
Metadata returns metadata bytes.
func (*FrameRequestStream) MetadataUTF8 ¶
func (p *FrameRequestStream) MetadataUTF8() (metadata string, ok bool)
MetadataUTF8 returns metadata as UTF8 string.
func (*FrameRequestStream) String ¶
func (p *FrameRequestStream) String() string
func (*FrameRequestStream) Validate ¶
func (p *FrameRequestStream) Validate() (err error)
Validate returns error if frame is invalid.
type FrameResume ¶
type FrameResume struct {
*BaseFrame
}
FrameResume represents a frame of Resume.
func NewFrameResume ¶
func NewFrameResume(version common.Version, token []byte, firstAvailableClientPosition, lastReceivedServerPosition uint64) *FrameResume
NewFrameResume creates a new frame of Resume.
func (*FrameResume) FirstAvailableClientPosition ¶
func (p *FrameResume) FirstAvailableClientPosition() uint64
FirstAvailableClientPosition returns first available client position.
func (*FrameResume) LastReceivedServerPosition ¶
func (p *FrameResume) LastReceivedServerPosition() uint64
LastReceivedServerPosition returns last received server position.
func (*FrameResume) String ¶
func (p *FrameResume) String() string
func (*FrameResume) Token ¶
func (p *FrameResume) Token() []byte
Token returns resume token in bytes.
func (*FrameResume) Validate ¶
func (p *FrameResume) Validate() (err error)
Validate validate current frame.
func (*FrameResume) Version ¶
func (p *FrameResume) Version() common.Version
Version returns version.
type FrameResumeOK ¶
type FrameResumeOK struct {
*BaseFrame
}
FrameResumeOK represents a frame of ResumeOK.
func NewResumeOK ¶
func NewResumeOK(position uint64) *FrameResumeOK
NewResumeOK creates a new frame of ResumeOK.
func (*FrameResumeOK) LastReceivedClientPosition ¶
func (p *FrameResumeOK) LastReceivedClientPosition() uint64
LastReceivedClientPosition returns last received client position.
func (*FrameResumeOK) String ¶
func (p *FrameResumeOK) String() string
func (*FrameResumeOK) Validate ¶
func (p *FrameResumeOK) Validate() (err error)
Validate validate current frame.
type FrameSetup ¶
type FrameSetup struct {
*BaseFrame
}
FrameSetup is sent by client to initiate protocol processing.
func NewFrameSetup ¶
func NewFrameSetup( version common.Version, timeBetweenKeepalive, maxLifetime time.Duration, token []byte, mimeMetadata []byte, mimeData []byte, data []byte, metadata []byte, ) *FrameSetup
NewFrameSetup returns a new setup frame.
func (*FrameSetup) DataMimeType ¶
func (p *FrameSetup) DataMimeType() (mime string)
DataMimeType returns MIME of data.
func (*FrameSetup) DataUTF8 ¶
func (p *FrameSetup) DataUTF8() string
DataUTF8 returns data as UTF8 string.
func (*FrameSetup) MaxLifetime ¶
func (p *FrameSetup) MaxLifetime() time.Duration
MaxLifetime returns keepalive max lifetime.
func (*FrameSetup) Metadata ¶
func (p *FrameSetup) Metadata() ([]byte, bool)
Metadata returns metadata bytes.
func (*FrameSetup) MetadataMimeType ¶
func (p *FrameSetup) MetadataMimeType() string
MetadataMimeType returns MIME of metadata.
func (*FrameSetup) MetadataUTF8 ¶
func (p *FrameSetup) MetadataUTF8() (metadata string, ok bool)
MetadataUTF8 returns metadata as UTF8 string
func (*FrameSetup) String ¶
func (p *FrameSetup) String() string
func (*FrameSetup) TimeBetweenKeepalive ¶
func (p *FrameSetup) TimeBetweenKeepalive() time.Duration
TimeBetweenKeepalive returns keepalive interval duration.
func (*FrameSetup) Validate ¶
func (p *FrameSetup) Validate() (err error)
Validate returns error if frame is invalid.
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