forked from mirror/redis
Fix import path.
This commit is contained in:
parent
deb41df992
commit
5ea8ad46d6
|
@ -4,13 +4,12 @@ services:
|
|||
- redis-server
|
||||
|
||||
go:
|
||||
- 1.0
|
||||
- 1.1
|
||||
- 1.2
|
||||
- tip
|
||||
|
||||
install:
|
||||
- go get github.com/vmihailenco/bufio
|
||||
- go get gopkg.in/bufio.v1
|
||||
- go get github.com/golang/glog
|
||||
- go get launchpad.net/gocheck
|
||||
- go get gopkg.in/redis.v1
|
||||
|
|
30
command.go
30
command.go
|
@ -5,6 +5,8 @@ import (
|
|||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"gopkg.in/bufio.v1"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -25,7 +27,7 @@ var (
|
|||
|
||||
type Cmder interface {
|
||||
args() []string
|
||||
parseReply(reader) error
|
||||
parseReply(*bufio.Reader) error
|
||||
setErr(error)
|
||||
|
||||
writeTimeout() *time.Duration
|
||||
|
@ -126,7 +128,7 @@ func (cmd *Cmd) String() string {
|
|||
return cmdString(cmd, cmd.val)
|
||||
}
|
||||
|
||||
func (cmd *Cmd) parseReply(rd reader) error {
|
||||
func (cmd *Cmd) parseReply(rd *bufio.Reader) error {
|
||||
cmd.val, cmd.err = parseReply(rd, parseSlice)
|
||||
return cmd.err
|
||||
}
|
||||
|
@ -157,7 +159,7 @@ func (cmd *SliceCmd) String() string {
|
|||
return cmdString(cmd, cmd.val)
|
||||
}
|
||||
|
||||
func (cmd *SliceCmd) parseReply(rd reader) error {
|
||||
func (cmd *SliceCmd) parseReply(rd *bufio.Reader) error {
|
||||
v, err := parseReply(rd, parseSlice)
|
||||
if err != nil {
|
||||
cmd.err = err
|
||||
|
@ -193,7 +195,7 @@ func (cmd *StatusCmd) String() string {
|
|||
return cmdString(cmd, cmd.val)
|
||||
}
|
||||
|
||||
func (cmd *StatusCmd) parseReply(rd reader) error {
|
||||
func (cmd *StatusCmd) parseReply(rd *bufio.Reader) error {
|
||||
v, err := parseReply(rd, nil)
|
||||
if err != nil {
|
||||
cmd.err = err
|
||||
|
@ -229,7 +231,7 @@ func (cmd *IntCmd) String() string {
|
|||
return cmdString(cmd, cmd.val)
|
||||
}
|
||||
|
||||
func (cmd *IntCmd) parseReply(rd reader) error {
|
||||
func (cmd *IntCmd) parseReply(rd *bufio.Reader) error {
|
||||
v, err := parseReply(rd, nil)
|
||||
if err != nil {
|
||||
cmd.err = err
|
||||
|
@ -267,7 +269,7 @@ func (cmd *DurationCmd) String() string {
|
|||
return cmdString(cmd, cmd.val)
|
||||
}
|
||||
|
||||
func (cmd *DurationCmd) parseReply(rd reader) error {
|
||||
func (cmd *DurationCmd) parseReply(rd *bufio.Reader) error {
|
||||
v, err := parseReply(rd, nil)
|
||||
if err != nil {
|
||||
cmd.err = err
|
||||
|
@ -303,7 +305,7 @@ func (cmd *BoolCmd) String() string {
|
|||
return cmdString(cmd, cmd.val)
|
||||
}
|
||||
|
||||
func (cmd *BoolCmd) parseReply(rd reader) error {
|
||||
func (cmd *BoolCmd) parseReply(rd *bufio.Reader) error {
|
||||
v, err := parseReply(rd, nil)
|
||||
if err != nil {
|
||||
cmd.err = err
|
||||
|
@ -339,7 +341,7 @@ func (cmd *StringCmd) String() string {
|
|||
return cmdString(cmd, cmd.val)
|
||||
}
|
||||
|
||||
func (cmd *StringCmd) parseReply(rd reader) error {
|
||||
func (cmd *StringCmd) parseReply(rd *bufio.Reader) error {
|
||||
v, err := parseReply(rd, nil)
|
||||
if err != nil {
|
||||
cmd.err = err
|
||||
|
@ -371,7 +373,7 @@ func (cmd *FloatCmd) String() string {
|
|||
return cmdString(cmd, cmd.val)
|
||||
}
|
||||
|
||||
func (cmd *FloatCmd) parseReply(rd reader) error {
|
||||
func (cmd *FloatCmd) parseReply(rd *bufio.Reader) error {
|
||||
v, err := parseReply(rd, nil)
|
||||
if err != nil {
|
||||
cmd.err = err
|
||||
|
@ -407,7 +409,7 @@ func (cmd *StringSliceCmd) String() string {
|
|||
return cmdString(cmd, cmd.val)
|
||||
}
|
||||
|
||||
func (cmd *StringSliceCmd) parseReply(rd reader) error {
|
||||
func (cmd *StringSliceCmd) parseReply(rd *bufio.Reader) error {
|
||||
v, err := parseReply(rd, parseStringSlice)
|
||||
if err != nil {
|
||||
cmd.err = err
|
||||
|
@ -443,7 +445,7 @@ func (cmd *BoolSliceCmd) String() string {
|
|||
return cmdString(cmd, cmd.val)
|
||||
}
|
||||
|
||||
func (cmd *BoolSliceCmd) parseReply(rd reader) error {
|
||||
func (cmd *BoolSliceCmd) parseReply(rd *bufio.Reader) error {
|
||||
v, err := parseReply(rd, parseBoolSlice)
|
||||
if err != nil {
|
||||
cmd.err = err
|
||||
|
@ -479,7 +481,7 @@ func (cmd *StringStringMapCmd) String() string {
|
|||
return cmdString(cmd, cmd.val)
|
||||
}
|
||||
|
||||
func (cmd *StringStringMapCmd) parseReply(rd reader) error {
|
||||
func (cmd *StringStringMapCmd) parseReply(rd *bufio.Reader) error {
|
||||
v, err := parseReply(rd, parseStringStringMap)
|
||||
if err != nil {
|
||||
cmd.err = err
|
||||
|
@ -515,7 +517,7 @@ func (cmd *StringFloatMapCmd) String() string {
|
|||
return cmdString(cmd, cmd.val)
|
||||
}
|
||||
|
||||
func (cmd *StringFloatMapCmd) parseReply(rd reader) error {
|
||||
func (cmd *StringFloatMapCmd) parseReply(rd *bufio.Reader) error {
|
||||
v, err := parseReply(rd, parseStringFloatMap)
|
||||
if err != nil {
|
||||
cmd.err = err
|
||||
|
@ -552,7 +554,7 @@ func (cmd *ScanCmd) String() string {
|
|||
return cmdString(cmd, cmd.keys)
|
||||
}
|
||||
|
||||
func (cmd *ScanCmd) parseReply(rd reader) error {
|
||||
func (cmd *ScanCmd) parseReply(rd *bufio.Reader) error {
|
||||
vi, err := parseReply(rd, parseSlice)
|
||||
if err != nil {
|
||||
cmd.err = err
|
||||
|
|
36
parser.go
36
parser.go
|
@ -5,10 +5,10 @@ import (
|
|||
"fmt"
|
||||
"strconv"
|
||||
|
||||
"github.com/vmihailenco/bufio"
|
||||
"gopkg.in/bufio.v1"
|
||||
)
|
||||
|
||||
type multiBulkParser func(rd reader, n int64) (interface{}, error)
|
||||
type multiBulkParser func(rd *bufio.Reader, n int64) (interface{}, error)
|
||||
|
||||
var (
|
||||
errReaderTooSmall = errors.New("redis: reader is too small")
|
||||
|
@ -33,15 +33,7 @@ func appendCmd(buf []byte, args []string) []byte {
|
|||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
type reader interface {
|
||||
ReadLine() ([]byte, bool, error)
|
||||
Read([]byte) (int, error)
|
||||
ReadN(n int) ([]byte, error)
|
||||
Buffered() int
|
||||
Peek(int) ([]byte, error)
|
||||
}
|
||||
|
||||
func readLine(rd reader) ([]byte, error) {
|
||||
func readLine(rd *bufio.Reader) ([]byte, error) {
|
||||
line, isPrefix, err := rd.ReadLine()
|
||||
if err != nil {
|
||||
return line, err
|
||||
|
@ -52,12 +44,12 @@ func readLine(rd reader) ([]byte, error) {
|
|||
return line, nil
|
||||
}
|
||||
|
||||
func readN(rd reader, n int) ([]byte, error) {
|
||||
func readN(rd *bufio.Reader, n int) ([]byte, error) {
|
||||
b, err := rd.ReadN(n)
|
||||
if err == bufio.ErrBufferFull {
|
||||
newB := make([]byte, n)
|
||||
r := copy(newB, b)
|
||||
b = newB
|
||||
tmp := make([]byte, n)
|
||||
r := copy(tmp, b)
|
||||
b = tmp
|
||||
|
||||
for {
|
||||
nn, err := rd.Read(b[r:])
|
||||
|
@ -78,7 +70,7 @@ func readN(rd reader, n int) ([]byte, error) {
|
|||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
func parseReq(rd reader) ([]string, error) {
|
||||
func parseReq(rd *bufio.Reader) ([]string, error) {
|
||||
line, err := readLine(rd)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -118,7 +110,7 @@ func parseReq(rd reader) ([]string, error) {
|
|||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
func parseReply(rd reader, p multiBulkParser) (interface{}, error) {
|
||||
func parseReply(rd *bufio.Reader, p multiBulkParser) (interface{}, error) {
|
||||
line, err := readLine(rd)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -166,7 +158,7 @@ func parseReply(rd reader, p multiBulkParser) (interface{}, error) {
|
|||
return nil, fmt.Errorf("redis: can't parse %q", line)
|
||||
}
|
||||
|
||||
func parseSlice(rd reader, n int64) (interface{}, error) {
|
||||
func parseSlice(rd *bufio.Reader, n int64) (interface{}, error) {
|
||||
vals := make([]interface{}, 0, n)
|
||||
for i := int64(0); i < n; i++ {
|
||||
v, err := parseReply(rd, parseSlice)
|
||||
|
@ -181,7 +173,7 @@ func parseSlice(rd reader, n int64) (interface{}, error) {
|
|||
return vals, nil
|
||||
}
|
||||
|
||||
func parseStringSlice(rd reader, n int64) (interface{}, error) {
|
||||
func parseStringSlice(rd *bufio.Reader, n int64) (interface{}, error) {
|
||||
vals := make([]string, 0, n)
|
||||
for i := int64(0); i < n; i++ {
|
||||
vi, err := parseReply(rd, nil)
|
||||
|
@ -197,7 +189,7 @@ func parseStringSlice(rd reader, n int64) (interface{}, error) {
|
|||
return vals, nil
|
||||
}
|
||||
|
||||
func parseBoolSlice(rd reader, n int64) (interface{}, error) {
|
||||
func parseBoolSlice(rd *bufio.Reader, n int64) (interface{}, error) {
|
||||
vals := make([]bool, 0, n)
|
||||
for i := int64(0); i < n; i++ {
|
||||
vi, err := parseReply(rd, nil)
|
||||
|
@ -213,7 +205,7 @@ func parseBoolSlice(rd reader, n int64) (interface{}, error) {
|
|||
return vals, nil
|
||||
}
|
||||
|
||||
func parseStringStringMap(rd reader, n int64) (interface{}, error) {
|
||||
func parseStringStringMap(rd *bufio.Reader, n int64) (interface{}, error) {
|
||||
m := make(map[string]string, n/2)
|
||||
for i := int64(0); i < n; i += 2 {
|
||||
keyI, err := parseReply(rd, nil)
|
||||
|
@ -239,7 +231,7 @@ func parseStringStringMap(rd reader, n int64) (interface{}, error) {
|
|||
return m, nil
|
||||
}
|
||||
|
||||
func parseStringFloatMap(rd reader, n int64) (interface{}, error) {
|
||||
func parseStringFloatMap(rd *bufio.Reader, n int64) (interface{}, error) {
|
||||
m := make(map[string]float64, n/2)
|
||||
for i := int64(0); i < n; i += 2 {
|
||||
keyI, err := parseReply(rd, nil)
|
||||
|
|
Loading…
Reference in New Issue