MCPcopy
hub / github.com/bradfitz/gomemcache / incrDecr

Method incrDecr

memcache/memcache.go:806–828  ·  view source on GitHub ↗
(verb, key string, delta uint64)

Source from the content-addressed store, hash-verified

804}
805
806func (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//

Callers 2

IncrementMethod · 0.95
DecrementMethod · 0.95

Calls 2

withKeyRwMethod · 0.95
writeReadLineFunction · 0.85

Tested by

no test coverage detected