ledisdb/ledis/command.go

38 lines
572 B
Go
Raw Normal View History

2014-05-09 10:49:22 +04:00
package ledis
2014-05-02 13:08:20 +04:00
2014-05-03 10:55:12 +04:00
import (
"fmt"
"strings"
)
2014-05-02 13:08:20 +04:00
2014-05-03 10:55:12 +04:00
type CommandFunc func(c *client) error
2014-05-02 13:08:20 +04:00
var regCmds = map[string]CommandFunc{}
2014-05-03 10:55:12 +04:00
func register(name string, f CommandFunc) {
if _, ok := regCmds[strings.ToLower(name)]; ok {
panic(fmt.Sprintf("%s has been registered", name))
}
regCmds[name] = f
}
func pingCommand(c *client) error {
c.writeStatus(PONG)
return nil
}
func echoCommand(c *client) error {
if len(c.args) != 1 {
return ErrCmdParams
}
c.writeBulk(c.args[0])
return nil
}
func init() {
register("ping", pingCommand)
register("echo", echoCommand)
}