micro-router-static/static.go

91 lines
1.6 KiB
Go
Raw Normal View History

package static
import (
"github.com/micro/go-micro/v2/router"
)
// NewRouter returns an initialized static router
func NewRouter(opts ...router.Option) router.Router {
options := router.DefaultOptions()
for _, o := range opts {
o(&options)
}
return &static{options, new(table)}
}
type static struct {
options router.Options
table router.Table
}
func (s *static) Init(opts ...router.Option) error {
for _, o := range opts {
o(&s.options)
}
return nil
}
func (s *static) Options() router.Options {
return s.options
}
func (s *static) Table() router.Table {
return nil
}
func (s *static) Advertise() (<-chan *router.Advert, error) {
return nil, nil
}
func (s *static) Process(*router.Advert) error {
return nil
}
func (s *static) Lookup(opts ...router.QueryOption) ([]router.Route, error) {
return s.table.Query(opts...)
}
func (s *static) Watch(opts ...router.WatchOption) (router.Watcher, error) {
return nil, nil
}
func (s *static) Close() error {
return nil
}
func (s *static) String() string {
return "static"
}
type table struct{}
func (t *table) Create(router.Route) error {
return nil
}
func (t *table) Delete(router.Route) error {
return nil
}
func (t *table) Update(router.Route) error {
return nil
}
func (t *table) List() ([]router.Route, error) {
return nil, nil
}
func (t *table) Query(opts ...router.QueryOption) ([]router.Route, error) {
options := router.NewQuery(opts...)
return []router.Route{
router.Route{
Address: options.Service,
Service: options.Address,
Gateway: options.Gateway,
Network: options.Network,
Router: options.Router,
},
}, nil
}