(verb, key string, delta uint64)
| 804 | } |
| 805 | |
| 806 | func (c *Client) incrDecr(verb, key string, delta uint64) (uint64, error) { |
| 807 | var val uint64 |
| 808 | err := c.withKeyRw(key, func(conn *conn) error { |
| 809 | rw := conn.rw |
| 810 | line, err := writeReadLine(rw, "%s %s %d\r\n", verb, key, delta) |
| 811 | if err != nil { |
| 812 | return err |
| 813 | } |
| 814 | switch { |
| 815 | case bytes.Equal(line, resultNotFound): |
| 816 | return ErrCacheMiss |
| 817 | case bytes.HasPrefix(line, resultClientErrorPrefix): |
| 818 | errMsg := line[len(resultClientErrorPrefix) : len(line)-2] |
| 819 | return errors.New("memcache: client error: " + string(errMsg)) |
| 820 | } |
| 821 | val, err = strconv.ParseUint(string(line[:len(line)-2]), 10, 64) |
| 822 | if err != nil { |
| 823 | return err |
| 824 | } |
| 825 | return nil |
| 826 | }) |
| 827 | return val, err |
| 828 | } |
| 829 | |
| 830 | // Close closes any open connections. |
| 831 | // |
no test coverage detected