xfer

package
v0.5.1-0...-5006072 Latest Latest
Warning

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

Go to latest
Published: Nov 30, 2017 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrXferPipeTooLong = errors.New("The length of transfer pipe cannot be bigger than 255")

ErrXferPipeTooLong error

Functions

func Reg

func Reg(xferFilter XferFilter)

Reg registers transfer filter.

Types

type Gzip

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

gzip compression filter

func (*Gzip) Id

func (g *Gzip) Id() byte

func (*Gzip) OnPack

func (g *Gzip) OnPack(src []byte) ([]byte, error)

func (*Gzip) OnUnpack

func (g *Gzip) OnUnpack(src []byte) ([]byte, error)

type XferFilter

type XferFilter interface {
	Id() byte
	OnPack([]byte) ([]byte, error)
	OnUnpack([]byte) ([]byte, error)
}

XferFilter handles byte stream of packet when transfer.

func Get

func Get(id byte) (XferFilter, error)

Get returns transfer filter.

type XferPipe

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

XferPipe transfer filter pipe, handlers from outer-most to inner-most. Note: the length can not be bigger than 255!

func (*XferPipe) Append

func (x *XferPipe) Append(filterId ...byte) error

Append appends transfer filter by id.

func (*XferPipe) AppendFrom

func (x *XferPipe) AppendFrom(src *XferPipe)

AppendFrom appends transfer filters from a *XferPipe.

func (*XferPipe) Ids

func (x *XferPipe) Ids() []byte

Ids returns the id list of transfer filters.

func (*XferPipe) Len

func (x *XferPipe) Len() int

Len returns the length of transfer pipe.

func (*XferPipe) OnPack

func (x *XferPipe) OnPack(data []byte) ([]byte, error)

OnPack packs transfer byte stream, from inner-most to outer-most.

func (*XferPipe) OnUnpack

func (x *XferPipe) OnUnpack(data []byte) ([]byte, error)

OnUnpack unpacks transfer byte stream, from outer-most to inner-most.

func (*XferPipe) Range

func (x *XferPipe) Range(callback func(idx int, filter XferFilter) bool)

Range calls f sequentially for each XferFilter present in the XferPipe. If f returns false, range stops the iteration.

func (*XferPipe) Reset

func (x *XferPipe) Reset()

Reset resets transfer filter pipe.

Jump to

Keyboard shortcuts

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