From 0824f4bcd9a31add8e7cfa1662d2cb40900de073 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 27 Mar 2016 20:44:30 +0200 Subject: Encapsulate in package --- rpc.go | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) (limited to 'rpc.go') diff --git a/rpc.go b/rpc.go index 62a6a3f..bf7b36d 100644 --- a/rpc.go +++ b/rpc.go @@ -1,38 +1,37 @@ -package main +package goxy import ( "log" "net/rpc" ) -// GoXY defines RPC interface -type GoXY struct{} +type GoXY struct { + Server *Server +} -func init() { - rpc.Register(GoXY{}) +func Register(s *Server) { + rpc.Register(&GoXY{s}) rpc.HandleHTTP() } // Add adds a new route -func (GoXY) Add(e Entry, _ *struct{}) error { +func (s *GoXY) Add(e Entry, _ *struct{}) error { log.Println("Add route", e) - defer route.Save(*data) - route[e.ServerName] = e - return route.Restore() + defer s.Server.Save() + s.Server.Route[e.ServerName] = e + return s.Server.Restore() } // Del removes a route -func (GoXY) Del(e Entry, _ *struct{}) error { +func (s *GoXY) Del(e Entry, _ *struct{}) error { log.Println("Del route", e) - defer route.Save(*data) - delete(route, e.ServerName) - return route.Restore() + defer s.Server.Save() + delete(s.Server.Route, e.ServerName) + return s.Server.Restore() } // List routes -func (GoXY) List(_ struct{}, r *[]Entry) error { - for _, v := range route { - *r = append(*r, v) - } +func (s GoXY) List(_ struct{}, r *Route) error { + *r = s.Server.Route return nil } -- cgit v1.2.3