v

package module
v0.0.0-...-f460929 Latest Latest
Warning

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

Go to latest
Published: Jan 12, 2021 License: MIT Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const (
	StateInit session.State = iota
	StateConnectNow
	StateReadyToReconnect
	StateTimeout
	StateDestroy
	StateSendAuth
	StateAvailable
)
View Source
const (
	CtxKeyClient = "v.client"
)

Variables

This section is empty.

Functions

func Deliver

func Deliver() deliver.Deliver

func MagicNumber

func MagicNumber() byte

func NewClient

func NewClient(opts ...client.Option) client.Client

func NewCodec

func NewCodec(io io.ReadWriteCloser) codec.Codec

func NewDecoder

func NewDecoder(r io.Reader) codec.Decoder

func NewDeliver

func NewDeliver(opts ...deliver.Option) deliver.Deliver

func NewEncoder

func NewEncoder(w io.Writer) codec.Encoder

func NewRegistry

func NewRegistry(opts ...registry.Option) registry.Registry

func NewRouter

func NewRouter() router.Router

func NewSelector

func NewSelector(opts ...selector.Option) selector.Selector

func NewServer

func NewServer(opts ...server.Option) server.Server

func NewSession

func NewSession(n registry.Node, codec codec.Codec) session.Session

func NewSessionManager

func NewSessionManager() session.Manager

func NewStrategy

func NewStrategy() selector.Strategy

func NewWatcher

func NewWatcher(ctx context.Context) registry.Watcher

func Wrapper

func Wrapper(h HandlerWrapper) handler.Func

Types

type Client

type Client struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

TODO with connection pool Do not force use pool, if need to implement it yourself

func (*Client) Init

func (cli *Client) Init(opts ...client.Option)

func (*Client) Name

func (cli *Client) Name() string

func (*Client) Options

func (cli *Client) Options() client.Options

func (*Client) Router

func (cli *Client) Router() router.Router

func (*Client) Send

func (cli *Client) Send(m interface{}) error

func (*Client) Start

func (cli *Client) Start() error

func (*Client) Stop

func (cli *Client) Stop() error

func (*Client) String

func (cli *Client) String() string

type Codec

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

func (*Codec) Close

func (code *Codec) Close() error

func (*Codec) Read

func (code *Codec) Read(v interface{}) error

func (*Codec) String

func (code *Codec) String() string

func (*Codec) Write

func (code *Codec) Write(i interface{}) error

type Decoder

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

func (*Decoder) Decode

func (dec *Decoder) Decode(i interface{}) error

type Encoder

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

func (*Encoder) Encode

func (enc *Encoder) Encode(v interface{}) error

type HandlerWrapper

type HandlerWrapper func(ctx context.Context, request *Request, writer *ResponseWriter) error
type Header [10]byte

func (Header) CheckMagicNumber

func (h Header) CheckMagicNumber() bool

func (Header) Cmd

func (h Header) Cmd() uint32

func (Header) Seq

func (h Header) Seq() uint32

func (*Header) SetCmd

func (h *Header) SetCmd(cmd uint32)

func (*Header) SetSeq

func (h *Header) SetSeq(seq uint32)

func (*Header) SetVersion

func (h *Header) SetVersion(v byte)

func (Header) Version

func (h Header) Version() byte

type Message

type Message struct {
	*Header
	ServiceName string
	Payload     []byte
}

func NewMessage

func NewMessage(service string) *Message

type Node

type Node struct {
	Name    string `json:"name"`
	Id      string `json:"id"`
	Address string `json:"addr"`
}

func GetMetadata

func GetMetadata(ss session.Session) (*Node, error)

func (*Node) Addr

func (n *Node) Addr() string

func (*Node) MarshalKey

func (n *Node) MarshalKey() ([]byte, error)

func (*Node) MarshalNode

func (n *Node) MarshalNode() ([]byte, error)

func (*Node) UnmarshalNode

func (n *Node) UnmarshalNode(b []byte) error

type Registry

type Registry struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func (*Registry) Deregister

func (r *Registry) Deregister(n registry.Node) error

func (*Registry) GetNodes

func (r *Registry) GetNodes(key string) ([]registry.Node, error)

func (*Registry) Init

func (r *Registry) Init(opts ...registry.Option)

func (*Registry) Options

func (r *Registry) Options() registry.Options

func (*Registry) Register

func (r *Registry) Register(n registry.Node, opts ...registry.RegisterOption) error

get from registry if !exist

grant and register

else

if changed
    grant and register

func (*Registry) String

func (r *Registry) String() string

func (*Registry) Watch

func (r *Registry) Watch(ctx context.Context, key string, watcher registry.NewWatcher) error

type Request

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

func (*Request) Body

func (r *Request) Body() interface{}

func (*Request) Header

func (r *Request) Header() map[string]string

type ResponseWriter

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

func (*ResponseWriter) Write

func (rw *ResponseWriter) Write(v interface{}) error

func (*ResponseWriter) Writer

func (rw *ResponseWriter) Writer() codec.Codec

type RoundBin

type RoundBin struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func (*RoundBin) Do

func (r *RoundBin) Do(name string, nodes []registry.Node) selector.Next

func (*RoundBin) DoA

func (r *RoundBin) DoA(name string, nodes []registry.Node) registry.Node

type Router

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

func (*Router) Handle

func (r *Router) Handle(pattern interface{}, handler handler.Func)

func (*Router) Serve

func (r *Router) Serve(ctx context.Context, request interface{}, replay interface{}) error

func (*Router) String

func (r *Router) String() string

type Selector

type Selector struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func (*Selector) Init

func (s *Selector) Init(opts ...selector.Option)

func (*Selector) Mark

func (s *Selector) Mark(node registry.Node, err error)

func (*Selector) Options

func (s *Selector) Options() selector.Options

func (*Selector) Select

func (s *Selector) Select(n string) (selector.Next, error)

func (*Selector) SelectA

func (s *Selector) SelectA(n string) (registry.Node, error)

func (*Selector) String

func (s *Selector) String() string

type Server

type Server struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func (*Server) Init

func (s *Server) Init(opts ...server.Option)

func (*Server) Options

func (s *Server) Options() server.Options

func (*Server) Router

func (s *Server) Router() router.Router

func (*Server) Start

func (s *Server) Start() error

Must not block

func (*Server) Stop

func (s *Server) Stop() error

func (*Server) String

func (s *Server) String() string

type Watcher

type Watcher struct {
	Context context.Context
	Client  *Client
}

func (*Watcher) Create

func (w *Watcher) Create(n registry.Node)

func (*Watcher) Delete

func (w *Watcher) Delete(n registry.Node)

func (*Watcher) GetNodes

func (w *Watcher) GetNodes(s string) ([]registry.Node, error)

func (*Watcher) Update

func (w *Watcher) Update(n registry.Node)

Jump to

Keyboard shortcuts

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