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 ¶
func NewDefaultHeartbeatOptions ¶
func NewDefaultHeartbeatOptions() *HeartbeatOptions
func NewHeartbeatOptions ¶
func NewHeartbeatOptions(options *channel.HeartbeatOptions) (*HeartbeatOptions, error)
type NetworkController ¶
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
Click to show internal directories.
Click to hide internal directories.