rpc

package
v0.0.0-...-9c05d5a Latest Latest
Warning

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

Go to latest
Published: Jul 7, 2015 License: GPL-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Dial

func Dial(addr string, linker Linker) error

func Listen

func Listen(addr, prot string, linkerFunc NewLinkerFunc) error

Types

type Buffer

type Buffer struct {
	*bytes.Buffer
	// contains filtered or unexported fields
}

func NewBuffer

func NewBuffer(buf *bytes.Buffer) *Buffer

func NewBufferString

func NewBufferString(s string) *Buffer

func (*Buffer) All

func (b *Buffer) All() []byte

func (*Buffer) Prepand

func (b *Buffer) Prepand(r io.Reader)

func (*Buffer) Read

func (b *Buffer) Read(buf []byte) (int, error)

type BufferReader

type BufferReader interface {
	io.Reader
	Len() int
	WriteTo(w io.Writer) (int64, error)
	Prepand(r io.Reader)
}

type BufferWriter

type BufferWriter interface {
	io.Writer
}

type Context

type Context interface {
	Close()
}

type Data

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

func NewData

func NewData(d interface{}) *Data

func NewRawData

func NewRawData(buf []byte) *Data

func (*Data) Decode

func (d *Data) Decode(enc Encoding, v interface{}) error

func (*Data) String

func (d *Data) String() string

func (*Data) Write

func (d *Data) Write(buf BufferWriter, enc Encoding) error

type EncContext

type EncContext struct {
	MetaEnc Encoding
	BodyEnc Encoding
}

func NewEncContext

func NewEncContext(metaEnc, bodyEnc Encoding) *EncContext

type Encoding

type Encoding interface {
	Encode(w BufferWriter, v interface{}) error
	Decode(r *bytes.Reader, v interface{}) error
}

type Error

type Error struct {
	IsUserError bool
	// contains filtered or unexported fields
}

func NewError

func NewError(err error, user bool) *Error

type GenContext

type GenContext func() Context

type Handler

type Handler interface {
	GetHandler(path string) (handler HandlerFunc)
	HandleFunc(path string, handlerFunc HandlerFunc)
	ListPath() []string
}

type HandlerFunc

type HandlerFunc func(ResponseWriter, *Request)

type Linker

type Linker interface {
	Init(net.Conn)
	Handle()
	Protocol() string
}

type Meta

type Meta struct {
	Type    MetaType `json:"type"`
	Version int      `json:"version,omitempty"`
	Seq     uint64   `json:"seq"`
	Path    string   `json:"path,omitempty"`
	Error   string   `json:"error,omitempty"`
}

func NewMetaError

func NewMetaError(seq uint64, err string) *Meta

func NewReqMeta

func NewReqMeta(path string) *Meta

func NewRespMeta

func NewRespMeta(seq uint64) *Meta

func (*Meta) String

func (m *Meta) String() string

type MetaType

type MetaType int
const (
	MetaReq MetaType = iota
	MetaResp
)

func (MetaType) String

func (m MetaType) String() string

type Mux

type Mux interface {
	Init(io.Reader)
	Handle(*bytes.Buffer) error
	WriteChan() (ch <-chan *WriteItem)
	WritePacket(p *Packet) error
	OnClosed()
}

type NewLinkerFunc

type NewLinkerFunc func() Linker

type Packet

type Packet struct {
	Meta *Meta
	Data *Data
}

func NewReqPacket

func NewReqPacket(path string, data interface{}) *Packet

func NewRespPacket

func NewRespPacket(seq uint64, data interface{}) *Packet

func (*Packet) String

func (p *Packet) String() string

type Protocol

type Protocol interface {
	Read(buf *bytes.Buffer, metaEnc Encoding, p *Packet) error
	Write(metaEnc, bodyEnc Encoding, p *Packet) error
}

type Request

type Request struct {
	Gtx  Context
	Ctx  *EncContext
	Data *Data
	Meta *Meta
}

func NewRequest

func NewRequest(p *Packet, ctx *EncContext, gtx Context) *Request

func (*Request) Params

func (r *Request) Params(v interface{}) error

type ResponseWriter

type ResponseWriter interface {
	Responsef(fmt string, data ...interface{}) error
	Response(data interface{}) error
	Error(err error) error
	Errorf(string, ...interface{}) error
	ErrorInfo(string) error
}

type WriteItem

type WriteItem struct {
	Data []byte
	Resp chan error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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