From cdf0f14d58551dd0acd2a9f335faf9bfd6a3a873 Mon Sep 17 00:00:00 2001 From: Asim Aslam Date: Wed, 31 Jul 2019 17:19:49 +0100 Subject: [PATCH] remove this code --- network/default.go | 167 --------------------------------------------- network/network.go | 23 ------- network/options.go | 74 -------------------- 3 files changed, 264 deletions(-) delete mode 100644 network/default.go delete mode 100644 network/network.go delete mode 100644 network/options.go diff --git a/network/default.go b/network/default.go deleted file mode 100644 index 78553653..00000000 --- a/network/default.go +++ /dev/null @@ -1,167 +0,0 @@ -package network - -import ( - "context" - "sync" - - "github.com/micro/go-micro/client" - "github.com/micro/go-micro/network/proxy/mucp" - "github.com/micro/go-micro/network/router" - "github.com/micro/go-micro/network/router/handler" - pb "github.com/micro/go-micro/network/router/proto" - "github.com/micro/go-micro/server" -) - -type network struct { - options Options - handler server.Router - router pb.RouterService - - sync.RWMutex - connected bool - exit chan bool -} - -// process processes router advertisements and randomly sends the advert -// to a node in the network. Over a period of time the routers should converge. -func (n *network) process(advertChan <-chan *router.Advert) { - for { - select { - // process local adverts and randomly fire them at other nodes - case a := <-advertChan: - // create a proto advert - var events []*pb.Event - for _, event := range a.Events { - route := &pb.Route{ - Service: event.Route.Service, - Address: event.Route.Address, - Gateway: event.Route.Gateway, - Network: event.Route.Network, - Link: event.Route.Link, - Metric: int64(event.Route.Metric), - } - e := &pb.Event{ - Type: pb.EventType(event.Type), - Timestamp: event.Timestamp.UnixNano(), - Route: route, - } - events = append(events, e) - } - - // fire the advert to a random network node - n.router.Process(context.Background(), &pb.Advert{ - Id: n.options.Router.Options().Id, - Type: pb.AdvertType(a.Type), - Timestamp: a.Timestamp.UnixNano(), - Events: events, - }) - case <-n.exit: - return - } - } -} -func (n *network) Name() string { - return n.options.Name -} - -// Implements the server.ServeRequest method. -func (n *network) ServeRequest(ctx context.Context, req server.Request, rsp server.Response) error { - // If we're being called then execute our handlers - if req.Service() == n.options.Name { - return n.handler.ServeRequest(ctx, req, rsp) - } - - // execute the proxy - return n.options.Proxy.ServeRequest(ctx, req, rsp) -} - -func (n *network) Connect() error { - n.Lock() - defer n.Unlock() - - // check if we're connected - if n.connected { - return nil - } - - n.exit = make(chan bool) - - // start advertising - advertChan, err := n.options.Router.Advertise() - if err != nil { - return err - } - - // process the adverts - go n.process(advertChan) - - // start the server - if err := n.options.Server.Start(); err != nil { - return err - } - - // set connected to true - n.connected = true - - return nil -} - -func (n *network) Close() error { - n.Lock() - defer n.Unlock() - - // check if we're connected - if !n.connected { - return nil - } - - close(n.exit) - - // set connected to false - n.connected = false - - // stop the router - if err := n.options.Router.Stop(); err != nil { - return err - } - - // stop the server - return n.options.Server.Stop() -} - -// newNetwork returns a new network node -func newNetwork(opts ...Option) Network { - options := Options{ - Name: DefaultName, - Address: DefaultAddress, - Client: client.DefaultClient, - Server: server.DefaultServer, - Proxy: mucp.NewProxy(), - Router: router.DefaultRouter, - } - - for _, o := range opts { - o(&options) - } - - // get the default server handler - sr := server.DefaultRouter - // create new router handler - hd := sr.NewHandler(&handler.Router{options.Router}) - // register the router handler - sr.Handle(hd) - - // set the server name - options.Server.Init( - server.Name(options.Name), - server.Address(options.Address), - server.Advertise(options.Advertise), - server.WithRouter(sr), - ) - - return &network{ - options: options, - handler: sr, - router: pb.NewRouterService(options.Name, options.Client), - } -} diff --git a/network/network.go b/network/network.go deleted file mode 100644 index f7251d60..00000000 --- a/network/network.go +++ /dev/null @@ -1,23 +0,0 @@ -// Package network is for building peer to peer networks -package network - -// Network is a -type Network interface { - // Name of the network - Name() string - // Connect starts the network node - Connect() error - // Close shutsdown the network node - Close() error -} - -var ( - DefaultName = "go.micro.network" - DefaultAddress = ":0" - DefaultNetwork = NewNetwork() -) - -// NewNetwork returns a new network interface -func NewNetwork(opts ...Option) Network { - return newNetwork(opts...) -} diff --git a/network/options.go b/network/options.go deleted file mode 100644 index fbf41884..00000000 --- a/network/options.go +++ /dev/null @@ -1,74 +0,0 @@ -package network - -import ( - "github.com/micro/go-micro/client" - "github.com/micro/go-micro/network/proxy" - "github.com/micro/go-micro/network/router" - "github.com/micro/go-micro/server" -) - -type Option func(*Options) - -type Options struct { - // Name of the network - Name string - // Address of the node - Address string - // Advertise a different address to the network - Advertise string - Client client.Client - Server server.Server - Proxy proxy.Proxy - Router router.Router -} - -// The network name -func Name(n string) Option { - return func(o *Options) { - o.Name = n - } -} - -// The network address -func Address(a string) Option { - return func(o *Options) { - o.Address = a - } -} - -// The network advertise address -func Advertise(a string) Option { - return func(o *Options) { - o.Advertise = a - } -} - -// The network client -func Client(c client.Client) Option { - return func(o *Options) { - o.Client = c - } -} - -// The network server -func Server(s server.Server) Option { - return func(o *Options) { - o.Server = s - } -} - -// The proxy to use -func Proxy(p proxy.Proxy) Option { - return func(o *Options) { - o.Proxy = p - } - -} - -// The router to use -func Router(r router.Router) Option { - return func(o *Options) { - o.Router = r - } - -}