| Index: service/memcache/interface.go
|
| diff --git a/service/memcache/interface.go b/service/memcache/interface.go
|
| index 346155b42e8b2c5fff93b8027a88f811573592cd..0c043b6aac42669e590b0edd446c60742e4e4ae7 100644
|
| --- a/service/memcache/interface.go
|
| +++ b/service/memcache/interface.go
|
| @@ -5,25 +5,67 @@
|
| package memcache
|
|
|
| // Interface is the full interface to the memcache service.
|
| +//
|
| +// The *Multi methods may return a "github.com/luci/luci-go/common/errors".MultiError
|
| +// if the rpc to the server was successful, but, e.g. some of the items were
|
| +// missing. They may also return a regular error, if, for example, the rpc
|
| +// failed outright.
|
| type Interface interface {
|
| + // NewItem creates a new, mutable, memcache item.
|
| NewItem(key string) Item
|
|
|
| + // Add puts a single item into memcache, but only if it didn't exist in
|
| + // memcache before.
|
| Add(item Item) error
|
| +
|
| + // Set the item in memcache, whether or not it exists.
|
| Set(item Item) error
|
| - Get(key string) (Item, error)
|
| +
|
| + // Get retrieves an item from memcache. Only the key field is read. The item
|
| + // will be mutated to contain the data in the memcache item.
|
| + Get(item Item) error
|
| +
|
| + // Delete removes an item from memcache.
|
| Delete(key string) error
|
| +
|
| + // CompareAndSwap accepts an item which is the result of Get() or GetMulti().
|
| + // The Get functions add a secret field to item ('CasID'), which is used as
|
| + // the "compare" value for the "CompareAndSwap". The actual "Value" field of
|
| + // the object set by the Get functions is the "swap" value.
|
| + //
|
| + // Example:
|
| + // mc := memcache.Get(context)
|
| + // itm := mc.NewItem("aKey")
|
| + // mc.Get(itm) // check error
|
| + // itm.SetValue(append(itm.Value(), []byte("more bytes")))
|
| + // mc.CompareAndSwap(itm) // check error
|
| CompareAndSwap(item Item) error
|
|
|
| AddMulti(items []Item) error
|
| SetMulti(items []Item) error
|
| - GetMulti(keys []string) (map[string]Item, error)
|
| + GetMulti(items []Item) error
|
| DeleteMulti(keys []string) error
|
| CompareAndSwapMulti(items []Item) error
|
|
|
| + // Increment adds delta to the uint64 contained at key. If the memcache key
|
| + // is missing, it's populated with initialValue before applying delta (i.e.
|
| + // the final value would be initialValue+delta).
|
| + //
|
| + // Underflow caps at 0, overflow wraps back to 0.
|
| + //
|
| + // If key contains a value which is not exactly 8 bytes, it's assumed to
|
| + // contain non-number data and this method will return an error.
|
| Increment(key string, delta int64, initialValue uint64) (newValue uint64, err error)
|
| +
|
| + // IncrementExisting is like Increment, except that the valu must exist
|
| + // already.
|
| IncrementExisting(key string, delta int64) (newValue uint64, err error)
|
|
|
| + // Flush dumps the entire memcache state.
|
| Flush() error
|
|
|
| + // Stats gets some best-effort statistics about the current state of memcache.
|
| Stats() (*Statistics, error)
|
| +
|
| + Raw() RawInterface
|
| }
|
|
|