From bd9866835bc61d7eb5e98fbd6f85252298974506 Mon Sep 17 00:00:00 2001 From: Mikhail Osipov Date: Wed, 22 Jan 2020 19:07:42 +0300 Subject: separate cmds interface --- pkg/server/server.go | 59 +--------------------------------------------------- 1 file changed, 1 insertion(+), 58 deletions(-) (limited to 'pkg/server/server.go') diff --git a/pkg/server/server.go b/pkg/server/server.go index d8a014d..8b803e7 100644 --- a/pkg/server/server.go +++ b/pkg/server/server.go @@ -12,18 +12,6 @@ import ( "io" ) -type cmd struct { - name string - f func (r *request) -} - -type node struct { - c *cmd - m map[string]*node -} - -var cmds = newNode() - type Server struct { listen net.Listener since time.Time @@ -124,51 +112,6 @@ func (r *request) expect(c ...int) { } } -func newNode() *node { - return &node{m: map[string]*node{}} -} - -func setHandler(f func (r *request), path ...string) { - node := cmds - - for _, name := range path { - v := node.m[name] - if v == nil { - v = newNode() - node.m[name] = v - } - - node = v - } - - if node.c != nil { - s := strings.Join(path, " ") - log.Panicf("handler already registered at '%s'", s) - } - - node.c = &cmd{ - name: strings.Join(path, " "), - f: f, - } -} - -func getHandler(path []string) (*cmd, []string) { - node := cmds - - for n, name := range path { - node = node.m[name] - if node == nil { - return nil, nil - } - - if node.c != nil { - return node.c, path[n + 1:] - } - } - - return nil, nil -} - func (s *Server) isDone() bool { select { case <- s.done: @@ -283,7 +226,7 @@ func (c *client) handle() { } func (r *request) parse(query string) bool { - c, args := getHandler(strings.Split(query, " ")) + c, args := getCmd(strings.Split(query, " ")) if c == nil { r.Print("unknown command") -- cgit v1.2.3-70-g09d2