onet

package module
v0.0.4 Latest Latest
Warning

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

Go to latest
Published: Sep 15, 2020 License: MIT Imports: 10 Imported by: 4

README

onet

golang overlay network library

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrParams        = errors.New("params error", errors.WithVendor(errVendor), errors.WithCode(-1))
	ErrExists        = errors.New("transport load error", errors.WithVendor(errVendor), errors.WithCode(-2))
	ErrNotFound      = errors.New("resource not found", errors.WithVendor(errVendor), errors.WithCode(-3))
	ErrProtocolValue = errors.New("protocol value check error", errors.WithVendor(errVendor), errors.WithCode(-4))
	ErrClosed        = errors.New("the socket closed", errors.WithVendor(errVendor), errors.WithCode(-5))
	ErrMuxNotFound   = errors.New("mux session not found", errors.WithVendor(errVendor), errors.WithCode(-6))
	ErrAddr          = errors.New("addr error", errors.WithVendor(errVendor), errors.WithCode(-7))
)

errors

Functions

func FromOnetConn added in v0.0.3

func FromOnetConn(conn Conn) (net.Conn, error)

FromOnetConn .

func FromOnetListener added in v0.0.3

func FromOnetListener(listener Listener) (net.Listener, error)

FromOnetListener .

func RegisterProtocol

func RegisterProtocol(protocol *Protocol) error

RegisterProtocol .

func RegisterProtocols

func RegisterProtocols(protocols ...*Protocol) error

RegisterProtocols .

func RegisterTransport

func RegisterTransport(transport Transport) error

RegisterTransport .

func RegisterTransports

func RegisterTransports(transports ...Transport) error

RegisterTransports .

Types

type Addr

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

Addr address support overlay network

func FromNetAddr added in v0.0.3

func FromNetAddr(addr net.Addr) (*Addr, error)

FromNetAddr create addr from net.Addr

func JoinAddr

func JoinAddr(subAddrs ...SubAddr) *Addr

JoinAddr .

func NewAddr

func NewAddr(addr string) (*Addr, error)

NewAddr create addr from string format

func (*Addr) MarshalJSON

func (addr *Addr) MarshalJSON() ([]byte, error)

MarshalJSON .

func (*Addr) ResolveNetAddr added in v0.0.3

func (addr *Addr) ResolveNetAddr() (net.Addr, error)

ResolveNetAddr .

func (*Addr) String

func (addr *Addr) String() string

func (*Addr) SubAddrs

func (addr *Addr) SubAddrs() []SubAddr

SubAddrs .

func (*Addr) UnmarshalJSON

func (addr *Addr) UnmarshalJSON(val []byte) error

UnmarshalJSON .

type Config

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

Config .

func NewConfig

func NewConfig() *Config

NewConfig .

func (*Config) Bind

func (builder *Config) Bind(name string, obj interface{}) error

Bind bind option object with name

func (*Config) Get

func (builder *Config) Get(name string, objptr interface{}) bool

Get get name option

type Conn

type Conn interface {
	io.ReadWriteCloser

	LocalAddr() *Addr

	RemoteAddr() *Addr

	SetDeadline(t time.Time) error

	SetReadDeadline(t time.Time) error

	SetWriteDeadline(t time.Time) error

	ONet() *OverlayNetwork
}

Conn overlay network conn object equal to net.Conn

func Dial

func Dial(ctx context.Context, raddr *Addr, options ...Option) (Conn, error)

Dial dial to the remote overlay address

func ToOnetConn added in v0.0.3

func ToOnetConn(conn net.Conn, onet *OverlayNetwork) (Conn, error)

ToOnetConn .

func ToOnetConnWithAddr added in v0.0.4

func ToOnetConnWithAddr(conn net.Conn, onet *OverlayNetwork, laddr, raddr *Addr) (Conn, error)

ToOnetConnWithAddr .

type Listener

type Listener interface {
	Accept() (Conn, error)

	Close() error

	// Addr returns the listener's network address.
	Addr() *Addr
}

Listener overlay network listener equal to net.Listener

func Listen

func Listen(addr *Addr, options ...Option) (Listener, error)

Listen listen on the local overlay address

func ToOnetListener added in v0.0.3

func ToOnetListener(listener net.Listener, onet *OverlayNetwork) (Listener, error)

ToOnetListener .

type MuxTransport

type MuxTransport interface {
	Transport
	Listen(onet *OverlayNetwork, chainOffset int) (Listener, error)
	Dial(ctx context.Context, onet *OverlayNetwork, chainOffset int) (Conn, error)
	OverlayTransport
}

MuxTransport .

type NativeTransport

type NativeTransport interface {
	Transport
	Listen(onet *OverlayNetwork) (Listener, error)
	Dial(ctx context.Context, onet *OverlayNetwork) (Conn, error)
}

NativeTransport .

type Option

type Option func(*Config) error

Option config overlay network start option

type OverlayNetwork

type OverlayNetwork struct {
	slf4go.Logger
	Addr              *Addr
	NavtiveAddr       *Addr
	NativeTransport   NativeTransport
	MuxAddrs          []*Addr
	MuxTransports     []MuxTransport
	OverlayAddrs      []*Addr
	OverlayTransports []OverlayTransport
	Config            *Config
}

OverlayNetwork .

func ParseOverlayNetwork

func ParseOverlayNetwork(addr *Addr, options ...Option) (*OverlayNetwork, error)

ParseOverlayNetwork parse addr to generate overlay network config

func (*OverlayNetwork) Dial

func (network *OverlayNetwork) Dial(ctx context.Context) (Conn, error)

Dial dial to the remote overlay address with config

func (*OverlayNetwork) Listen

func (network *OverlayNetwork) Listen() (Listener, error)

Listen listen on the local overlay address with config

type OverlayTransport

type OverlayTransport interface {
	Transport
	Client(onet *OverlayNetwork, conn Conn, chainOffset int) (Conn, error)
	Server(onet *OverlayNetwork, conn Conn, chainOffset int) (Conn, error)
}

OverlayTransport .

type Protocol

type Protocol struct {
	Name       string
	HasValue   bool
	CheckValue func(value string) error
}

Protocol .

func (*Protocol) String

func (p *Protocol) String() string

type SubAddr

type SubAddr interface {
	Protocol() string
	Value() string
}

SubAddr .

type Transport

type Transport interface {
	fmt.Stringer
	Protocol() string
}

Transport .

Jump to

Keyboard shortcuts

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