aboutsummaryrefslogtreecommitdiff
path: root/rpc.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-03-27 20:44:30 +0200
committerDimitri Sokolyuk <demon@dim13.org>2016-03-27 20:44:30 +0200
commit0824f4bcd9a31add8e7cfa1662d2cb40900de073 (patch)
tree63a152cd81992a9815fc8e3f23d873f2c562c505 /rpc.go
parent24ba33d974cf651df195d2912b00238e6eeb2ed8 (diff)
Encapsulate in package
Diffstat (limited to 'rpc.go')
-rw-r--r--rpc.go33
1 files changed, 16 insertions, 17 deletions
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
}