env

package
v0.34.1 Latest Latest
Warning

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

Go to latest
Published: Mar 26, 2024 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var IntervalSize time.Duration

Functions

This section is empty.

Types

type CtrlDialer

type CtrlDialer func(address transport.Address, bindHandler channel.BindHandler) error

type HeartbeatOptions

type HeartbeatOptions struct {
	channel.HeartbeatOptions
	UnresponsiveAfter time.Duration
}

func NewDefaultHeartbeatOptions

func NewDefaultHeartbeatOptions() *HeartbeatOptions

func NewHeartbeatOptions

func NewHeartbeatOptions(options *channel.HeartbeatOptions) (*HeartbeatOptions, error)

type NetworkController

type NetworkController interface {
	Channel() channel.Channel
	Address() string
	Latency() time.Duration
	HeartbeatCallback() channel.HeartbeatCallback
	IsUnresponsive() bool

	GetVersion() *versions.VersionInfo
	TimeSinceLastContact() time.Duration
	// contains filtered or unexported methods
}

type NetworkControllers

type NetworkControllers interface {
	UpdateControllerEndpoints(endpoints []string) bool
	GetAll() map[string]NetworkController
	GetNetworkController(ctrlId string) NetworkController
	AnyCtrlChannel() channel.Channel
	AllResponsiveCtrlChannels() []channel.Channel
	AnyValidCtrlChannel() channel.Channel
	GetCtrlChannel(ctrlId string) channel.Channel
	DefaultRequestTimeout() time.Duration
	ForEach(f func(ctrlId string, ch channel.Channel))
	Close() error
}

func NewNetworkControllers

func NewNetworkControllers(defaultRequestTimeout time.Duration, dialer CtrlDialer, heartbeatOptions *HeartbeatOptions) NetworkControllers

type RouterEnv

type RouterEnv interface {
	GetNetworkControllers() NetworkControllers
	GetRouterId() *identity.TokenId
	GetDialerCfg() map[string]xgress.OptionsData
	GetXlinkDialers() []xlink.Dialer
	GetXrctrls() []Xrctrl
	GetTraceHandler() *channel.TraceHandler
	GetXlinkRegistry() xlink.Registry
	GetCloseNotify() <-chan struct{}
	GetMetricsRegistry() metrics.UsageRegistry
	RenderJsonConfig() (string, error)
	GetHeartbeatOptions() HeartbeatOptions
	GetRateLimiterPool() goroutines.Pool
	GetCtrlRateLimiter() command.AdaptiveRateLimitTracker
	GetVersionInfo() versions.VersionProvider
}

type Xrctrl

type Xrctrl interface {
	config.Subconfig
	channel.BindHandler
	Enabled() bool
	Run(env RouterEnv) error
	NotifyOfReconnect(ch channel.Channel)
	GetTraceDecoders() []channel.TraceMessageDecoder
}

An Xrctrl allows adding handlers to the router <-> controller connection on the router side. This means you can support additional message types/flows to extend the basic fabric functionality.

There is a corresponding Xctrl interface for extending communication on the controller side

Jump to

Keyboard shortcuts

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