visual cleanup of router code

This commit is contained in:
Asim Aslam
2019-07-10 07:45:27 +01:00
parent 34967e8e33
commit 0a1b657221
5 changed files with 69 additions and 104 deletions

View File

@@ -7,43 +7,6 @@ import (
"github.com/micro/go-micro/network/router/table"
)
var (
// DefaultRouter is default network router
DefaultRouter = NewRouter()
)
// 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
// Address returns the router adddress
Address() string
// Network returns the network address of the router
Network() string
// Table returns the routing table
Table() table.Table
// Advertise advertises routes to the network
Advertise() (<-chan *Advert, error)
// Update updates the routing table
Update(*Advert) error
// Status returns router status
Status() Status
// Stop stops the router
Stop() error
// String returns debug info
String() string
}
// Option used by the router
type Option func(*Options)
// AdvertType is route advertisement type
type AdvertType int
const (
// Announce is advertised when the router announces itself
Announce AdvertType = iota
@@ -51,6 +14,15 @@ const (
Update
)
const (
// Running means the router is up and running
Running StatusCode = iota
// Stopped means the router has been stopped
Stopped
// Error means the router has encountered error
Error
)
// String returns string representation of update event
func (at AdvertType) String() string {
switch at {
@@ -63,10 +35,50 @@ func (at AdvertType) String() string {
}
}
// String returns human readable status code
func (sc StatusCode) String() string {
switch sc {
case Running:
return "RUNNING"
case Stopped:
return "STOPPED"
case Error:
return "ERROR"
default:
return "UNKNOWN"
}
}
// 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
// Table returns the routing table
table.Table
// Advertise advertises routes to the network
Advertise() (<-chan *Advert, error)
// Process processes incoming adverts
Process(*Advert) error
// Status returns router status
Status() Status
// Stop stops the router
Stop() error
// String returns debug info
String() string
}
// Option used by the router
type Option func(*Options)
// AdvertType is route advertisement type
type AdvertType int
// Advert contains a list of events advertised by the router to the network
type Advert struct {
// ID is the router ID
ID string
// Id is the router Id
Id string
// Type is type of advert
Type AdvertType
// Timestamp marks the time when the update is sent
@@ -89,29 +101,11 @@ type Status struct {
Code StatusCode
}
const (
// Running means the router is up and running
Running StatusCode = iota
// Stopped means the router has been stopped
Stopped
// Error means the router has encountered error
Error
var (
// DefaultRouter is default network router
DefaultRouter = NewRouter()
)
// String returns human readable status code
func (sc StatusCode) String() string {
switch sc {
case Running:
return "RUNNING"
case Stopped:
return "STOPPED"
case Error:
return "ERROR"
default:
return "UNKNOWN"
}
}
// NewRouter creates new Router and returns it
func NewRouter(opts ...Option) Router {
return newRouter(opts...)