Documentation
¶
Index ¶
- Variables
- func PrintProfile() string
- func Read(reader io.Reader) ([]byte, error)
- func ReadBool(reader Reader) (bool, error)
- func ReadByte(reader Reader) (byte, error)
- func ReadBytes(reader Reader, val []byte) error
- func ReadFloat32(reader Reader) (float32, error)
- func ReadFloat64(reader Reader) (float64, error)
- func ReadInt16(reader Reader) (int16, error)
- func ReadInt32(reader Reader) (int32, error)
- func ReadInt64(reader Reader) (int64, error)
- func ReadSByte(reader Reader) (int8, error)
- func ReadString(reader Reader) (string, error)
- func ReadUInt16(reader Reader) (uint16, error)
- func ReadUInt32(reader Reader) (uint32, error)
- func ReadUInt64(reader Reader) (uint64, error)
- func RegistryLoad(r io.Reader, name string)
- func RegistryUpdate(items map[string]uint16)
- func ServiceID(name string) uint16
- func ServiceName(id uint16) string
- func SkipRead(reader Reader, tag Tag) error
- func TCPListen(acceptor *Acceptor, laddr string) error
- func Write(writer io.Writer, buff []byte) (int, error)
- func WriteBool(writer Writer, v bool) error
- func WriteByte(writer Writer, v byte) error
- func WriteBytes(writer Writer, bytes []byte) error
- func WriteFloat32(writer Writer, n float32) error
- func WriteFloat64(writer Writer, n float64) error
- func WriteInt16(writer Writer, v int16) error
- func WriteInt32(writer Writer, v int32) error
- func WriteInt64(writer Writer, v int64) error
- func WriteSByte(writer Writer, v int8) error
- func WriteString(writer Writer, v string) error
- func WriteUInt16(writer Writer, v uint16) error
- func WriteUInt32(writer Writer, v uint32) error
- func WriteUInt64(writer Writer, v uint64) error
- type Acceptor
- type CallSite
- type Channel
- type Client
- type ClientBuilder
- type ClosableChannel
- type ConnectF
- type Context
- type Dispatcher
- type Future
- type Handler
- type HandlerF
- type MessageChannel
- type Pipeline
- type PipelineBuilder
- func (builder *PipelineBuilder) Build(name string) (Pipeline, error)
- func (builder *PipelineBuilder) CachedSize(cachedsize int) *PipelineBuilder
- func (builder *PipelineBuilder) Handler(name string, handlerF HandlerF) *PipelineBuilder
- func (builder *PipelineBuilder) Timeout(duration time.Duration) *PipelineBuilder
- type Profile
- type Promise
- type Reader
- type Registry
- type Send
- type SharedHandler
- type Sink
- type Stream
- type Wait
- type Writer
Constants ¶
This section is empty.
Variables ¶
var ( ErrRPC = errors.New("rpc error") ErrOverflow = errors.New("overflow of router queue") ErrTimeout = errors.New("rpc timeout") ErrCanceled = errors.New("rpc canceled") ErrClosed = errors.New("pipeline closed") ErrSkip = errors.New("skip handle pipeline event") ErrUnknown = errors.New("unknown error") )
...
var ( ErrDecode = errors.New("decode error") ErrWriteNone = errors.New("write nothing") ErrEncode = errors.New("encoding error") )
gsbuff public errors
var (
ErrRegistry = errors.New("load registry file error")
)
Errors
var (
ErrRegistryNotFound = errors.New("search found nothing")
)
Errors
Functions ¶
func ReadFloat32 ¶
ReadFloat32 read float32 from Reader interface
func ReadFloat64 ¶
ReadFloat64 read float64 from Reader interface
func ReadUInt16 ¶
ReadUInt16 read uint16 from Reader interface
func ReadUInt32 ¶
ReadUInt32 read uint32 from Reader interface
func ReadUInt64 ¶
ReadUInt64 read uint16 from Reader interface
func RegistryLoad ¶
RegistryLoad load registry table from io.Reader
func RegistryUpdate ¶
RegistryUpdate update default registry
func WriteBytes ¶
WriteBytes write string into stream
func WriteFloat32 ¶
WriteFloat32 write a little-endian int64 into a writer stream
func WriteFloat64 ¶
WriteFloat64 write a little-endian int64 into a writer stream
func WriteInt16 ¶
WriteInt16 write a little-endian int16 into a writer stream
func WriteInt32 ¶
WriteInt32 write a little-endian int32 into a writer stream
func WriteInt64 ¶
WriteInt64 write a little-endian int64 into a writer stream
func WriteString ¶
WriteString write string into stream
func WriteUInt16 ¶
WriteUInt16 write a little-endian uint16 into a writer stream
func WriteUInt32 ¶
WriteUInt32 write a little-endian uint32 into a writer stream
func WriteUInt64 ¶
WriteUInt64 write a little-endian uint64 into a writer stream
Types ¶
type Acceptor ¶
Acceptor the gorpc server channel acceptor
func NewAcceptor ¶
func NewAcceptor(name string, builder *PipelineBuilder) *Acceptor
NewAcceptor create new server channel acceptor
type Client ¶
type Client interface {
Close()
Pipeline() Pipeline
}
Client gorpc client
func TCPConnect ¶
func TCPConnect(builder *ClientBuilder, name, raddr string) (Client, error)
TCPConnect create a new tcp client
func WebSocketConnect ¶
WebSocketConnect establish a websocket client channel
type ClientBuilder ¶
type ClientBuilder struct {
gslogger.Log // Mixin Log APIs
// contains filtered or unexported fields
}
ClientBuilder .
func NewClientBuilder ¶
func NewClientBuilder(name string, builder *PipelineBuilder) *ClientBuilder
NewClientBuilder create new client builder
func (*ClientBuilder) Build ¶
func (builder *ClientBuilder) Build(name string, F ConnectF) (Client, error)
Build create new client
func (*ClientBuilder) Reconnect ¶
func (builder *ClientBuilder) Reconnect(timeout time.Duration) *ClientBuilder
Reconnect .
type Context ¶
type Context interface {
// current handler name
Name() string
// Pipeline current channel pipeline
Pipeline() Pipeline
// OnActive
FireActive()
// Send create new send pipeline message
Send(message *Message)
// Close close current pipeline
Close()
}
Context channel handler context
type Dispatcher ¶
type Dispatcher interface {
Dispatch(call *Request) (callReturn *Response, err error)
ID() uint16
String() string
}
Dispatcher .
type Handler ¶
type Handler interface {
// Register when handler had been add into one pipeline,
// system call this function notify handler
Register(context Context) error
// Unregister sysm call this function when handler had been removed from
// pipeline,you can get this pipeline object by Context#Pipeline function
Unregister(context Context)
// Active system call this function when pipline state trans to active
Active(context Context) error
// Inactive system call this function when pipeline state trans to inactive
Inactive(context Context)
// MessageReceived
MessageReceived(context Context, message *Message) (*Message, error)
// MessageSending
MessageSending(context Context, message *Message) (*Message, error)
// Panic handle async pipline method error
Panic(context Context, err error)
}
Handler the gorpc channel pipeline handlers
type MessageChannel ¶
type MessageChannel interface {
SendMessage(message *Message) error
}
MessageChannel .
type Pipeline ¶
type Pipeline interface {
String() string
// Name pipeline name
Name() string
// Close close pipeline
Close()
// Active trans pipeline state to active state
Active() error
// Inactive trans pipeline state to inactive state
Inactive()
// Received .
Received(message *Message) error
// TimeWheel invoke handle after timeout
TimeWheel() *timer.Wheel
// After invoke handle after timeout
After(timeout time.Duration, f func()) *timer.Timer
// Channel implement channel interface
Channel
// SendMessage .
SendMessage(message *Message) error
// AddService add new service
AddService(dispatcher Dispatcher)
// RemoveService remove service
RemoveService(dispatcher Dispatcher)
// Get Handler by name
Handler(name string) (Handler, bool)
// Get Sending message
Sending() (*Message, error)
}
Pipeline Channel handlers pipeline
type PipelineBuilder ¶
type PipelineBuilder struct {
// contains filtered or unexported fields
}
PipelineBuilder pipeline builder
func BuildPipeline ¶
func BuildPipeline(timerTick time.Duration) *PipelineBuilder
BuildPipeline creaet new pipeline builder
func (*PipelineBuilder) Build ¶
func (builder *PipelineBuilder) Build(name string) (Pipeline, error)
Build create new Pipeline
func (*PipelineBuilder) CachedSize ¶
func (builder *PipelineBuilder) CachedSize(cachedsize int) *PipelineBuilder
CachedSize .
func (*PipelineBuilder) Handler ¶
func (builder *PipelineBuilder) Handler(name string, handlerF HandlerF) *PipelineBuilder
Handler append new handler builder
func (*PipelineBuilder) Timeout ¶
func (builder *PipelineBuilder) Timeout(duration time.Duration) *PipelineBuilder
Timeout set rpc timeout
type Profile ¶
type Profile struct {
Timestamp time.Time // profile timestamp
Pipelines int32 // register pipelines
Actives int32 // actived pipelines
Received uint64 // received messages
Send uint64 // send messages
Errors uint64 // panic times
}
Profile .
type Promise ¶
type Promise interface {
Wait() (callReturn *Response, err error)
Notify(callReturn *Response, err error)
Timeout()
Cancel()
}
Promise .
type Reader ¶
type Reader interface {
io.ByteReader
io.Reader
}
Reader the gsbuff Reader interface, Mixin io.ByteReader and io.Reader interfaces
type Registry ¶
type Registry interface {
// Update update the registry
Update(items map[string]uint16)
// ServiceName get service name by service id
ServiceName(id uint16) string
// ServiceID get service id by service name
ServiceID(name string) uint16
// Load load registry from io.Reader
Load(r io.Reader, name string)
}
Registry the service registry
type SharedHandler ¶
type SharedHandler interface {
HandlerLock()
HandlerUnlock()
}
SharedHandler this handler will been shared with more than one piplines
type Sink ¶
type Sink interface {
Channel
AddService(dispatcher Dispatcher)
RemoveService(dispatcher Dispatcher)
ClearServices()
MessageReceived(message *Message) error
}
Sink .
type Stream ¶
type Stream struct {
// contains filtered or unexported fields
}
Stream the read/write stream