peering

package
v0.0.0-...-60c1ff8 Latest Latest
Warning

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

Go to latest
Published: Mar 4, 2019 License: MPL-2.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	Peering *PeerConfig
}

type Definition

type Definition struct {
	Tag        string
	ListenPort string
	ListenAddr string
}

func (*Definition) Addr

func (d *Definition) Addr() string

type PeerConfig

type PeerConfig struct {
	Name             string
	AdvertiseAddress string
	AdvertisePort    int
	BindPort         int
	BindAddr         string
	Join             []string
	Block            []string
	Federation       *PeerData
	ReplicaChan      chan *oplog.OpLog
	OpLogHandler     *oplog.Handler
}

func GetConf

func GetConf() *PeerConfig

type PeerData

type PeerData struct {
	NodeName   string
	APIIngress string
	Token      string
}

type PeerDelegate

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

func (*PeerDelegate) GetBroadcasts

func (p *PeerDelegate) GetBroadcasts(overhead, limit int) [][]byte

func (*PeerDelegate) LocalState

func (p *PeerDelegate) LocalState(join bool) []byte

func (*PeerDelegate) MergeRemoteState

func (p *PeerDelegate) MergeRemoteState(buf []byte, join bool)

func (*PeerDelegate) NodeMeta

func (p *PeerDelegate) NodeMeta(limit int) []byte

func (*PeerDelegate) NotifyMsg

func (p *PeerDelegate) NotifyMsg(b []byte)

type PeerEvents

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

func (*PeerEvents) NotifyJoin

func (p *PeerEvents) NotifyJoin(n *memberlist.Node)

func (*PeerEvents) NotifyLeave

func (p *PeerEvents) NotifyLeave(n *memberlist.Node)

func (*PeerEvents) NotifyUpdate

func (p *PeerEvents) NotifyUpdate(n *memberlist.Node)

type PeerManager

type PeerManager struct {
	Broadcasts *memberlist.TransmitLimitedQueue
	Name       string
	// contains filtered or unexported fields
}

func NewPeerManager

func NewPeerManager(cfg *PeerConfig) (*PeerManager, error)

func (*PeerManager) Init

func (p *PeerManager) Init(cfg *PeerConfig) error

func (*PeerManager) Join

func (p *PeerManager) Join(peers []string) error

func (*PeerManager) Leave

func (p *PeerManager) Leave() error

type WebTransport

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

WebTransport is a Transport implementation that uses connectionless UDP for packet operations, and ad-hoc TCP connections for stream operations.

func NewWebTransport

func NewWebTransport(config *WebTransportConfig) (*WebTransport, error)

NewWebTransport returns a web transport with the given configuration. On success all the network listeners will be created and listening.

func (*WebTransport) DialTimeout

func (t *WebTransport) DialTimeout(addr string, timeout time.Duration) (net.Conn, error)

See Transport.

func (*WebTransport) FinalAdvertiseAddr

func (t *WebTransport) FinalAdvertiseAddr(ip string, port int) (net.IP, int, error)

See Transport.

func (*WebTransport) GetAutoBindPort

func (t *WebTransport) GetAutoBindPort() int

GetAutoBindPort returns the bind port that was automatically given by the kernel, if a bind port of 0 was given.

func (*WebTransport) PacketCh

func (t *WebTransport) PacketCh() <-chan *memberlist.Packet

See Transport.

func (*WebTransport) Shutdown

func (t *WebTransport) Shutdown() error

See Transport.

func (*WebTransport) StreamCh

func (t *WebTransport) StreamCh() <-chan net.Conn

See Transport.

func (*WebTransport) WriteTo

func (t *WebTransport) WriteTo(b []byte, addr string) (time.Time, error)

See Transport.

type WebTransportConfig

type WebTransportConfig struct {
	// BindAddrs is a list of addresses to bind to for both TCP and UDP
	// communications.
	BindAddrs []string

	// BindPort is the port to listen on, for each address above.
	BindPort int
}

WebTransportConfig is used to configure a net transport.

Jump to

Keyboard shortcuts

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