| 93 | } |
| 94 | |
| 95 | func (r *Router) Sync(args []interface{}) error { |
| 96 | cmdType := strings.ToUpper(args[0].(string)) |
| 97 | op, ok := router.OpTable[cmdType] |
| 98 | handlers, ok := r.cmd[cmdType] |
| 99 | if !ok { |
| 100 | handlers = r.cmd[CMDEXEC] |
| 101 | } |
| 102 | c := r.pool.Get().(*router.Context) |
| 103 | defer func() { |
| 104 | c.Reset() |
| 105 | r.pool.Put(c) |
| 106 | }() |
| 107 | |
| 108 | c.Index = -1 |
| 109 | c.Writer = RESPHandle.NewWriterHandle(io.Discard) |
| 110 | c.Args = args |
| 111 | c.Handlers = handlers |
| 112 | c.Cmd = cmdType |
| 113 | c.Op = op.Flag |
| 114 | c.Reply = nil |
| 115 | handle := handlers.Last() |
| 116 | if handle != nil { |
| 117 | return handle(c) |
| 118 | } |
| 119 | return nil |
| 120 | } |
| 121 | |
| 122 | var _ router.IRoutes = (*Router)(nil) |
| 123 | |