micro/network/router/router.go

37 lines
888 B
Go
Raw Normal View History

2019-06-21 18:17:12 +03:00
// Package router provides a network routing control plane
package router
2019-06-21 18:17:12 +03:00
// Router is an interface for a routing control plane
type Router interface {
// Init initializes the router with options
Init(...Option) error
// Options returns the router options
Options() Options
// ID returns the id of the router
ID() string
// Table returns the routing table
Table() Table
// Address returns the router adddress
Address() string
// Network returns the network address of the router
Network() string
// Advertise starts advertising the routes to the network
Advertise() error
// Stop stops the router
Stop() error
// String returns debug info
String() string
}
// Option used by the router
type Option func(*Options)
2019-06-27 14:57:23 +03:00
var (
DefaultRouter = NewRouter()
)
// NewRouter creates new Router and returns it
func NewRouter(opts ...Option) Router {
return newRouter(opts...)
}