| Index: service/memcache/memcache.go
|
| diff --git a/service/memcache/memcache.go b/service/memcache/memcache.go
|
| deleted file mode 100644
|
| index c68f9e3b9734aecc783417040407551edb691a45..0000000000000000000000000000000000000000
|
| --- a/service/memcache/memcache.go
|
| +++ /dev/null
|
| @@ -1,130 +0,0 @@
|
| -// Copyright 2015 The LUCI Authors. All rights reserved.
|
| -// Use of this source code is governed under the Apache License, Version 2.0
|
| -// that can be found in the LICENSE file.
|
| -
|
| -package memcache
|
| -
|
| -import (
|
| - "github.com/luci/luci-go/common/errors"
|
| - "golang.org/x/net/context"
|
| -)
|
| -
|
| -type memcacheImpl struct{ RawInterface }
|
| -
|
| -var _ Interface = (*memcacheImpl)(nil)
|
| -
|
| -func (m *memcacheImpl) Add(item Item) error {
|
| - return errors.SingleError(m.AddMulti([]Item{item}))
|
| -}
|
| -
|
| -func (m *memcacheImpl) Set(item Item) error {
|
| - return errors.SingleError(m.SetMulti([]Item{item}))
|
| -}
|
| -
|
| -func (m *memcacheImpl) Get(key string) (Item, error) {
|
| - ret := m.NewItem(key)
|
| - err := errors.SingleError(m.GetMulti([]Item{ret}))
|
| - return ret, err
|
| -}
|
| -
|
| -func (m *memcacheImpl) Delete(key string) error {
|
| - return errors.SingleError(m.DeleteMulti([]string{key}))
|
| -}
|
| -
|
| -func (m *memcacheImpl) CompareAndSwap(item Item) error {
|
| - return errors.SingleError(m.CompareAndSwapMulti([]Item{item}))
|
| -}
|
| -
|
| -func filterItems(lme errors.LazyMultiError, items []Item, nilErr error) ([]Item, []int) {
|
| - idxMap := make([]int, 0, len(items))
|
| - retItems := make([]Item, 0, len(items))
|
| - for i, itm := range items {
|
| - if itm != nil {
|
| - idxMap = append(idxMap, i)
|
| - retItems = append(retItems, itm)
|
| - } else {
|
| - lme.Assign(i, nilErr)
|
| - }
|
| - }
|
| - return retItems, idxMap
|
| -}
|
| -
|
| -func multiCall(items []Item, nilErr error, inner func(items []Item, cb RawCB) error) error {
|
| - lme := errors.NewLazyMultiError(len(items))
|
| - realItems, idxMap := filterItems(lme, items, nilErr)
|
| - j := 0
|
| - err := inner(realItems, func(err error) {
|
| - lme.Assign(idxMap[j], err)
|
| - j++
|
| - })
|
| - if err == nil {
|
| - err = lme.Get()
|
| - }
|
| - return err
|
| -}
|
| -
|
| -func (m *memcacheImpl) AddMulti(items []Item) error {
|
| - return multiCall(items, ErrNotStored, m.RawInterface.AddMulti)
|
| -}
|
| -
|
| -func (m *memcacheImpl) SetMulti(items []Item) error {
|
| - return multiCall(items, ErrNotStored, m.RawInterface.SetMulti)
|
| -}
|
| -
|
| -func (m *memcacheImpl) CompareAndSwapMulti(items []Item) error {
|
| - return multiCall(items, ErrNotStored, m.RawInterface.CompareAndSwapMulti)
|
| -}
|
| -
|
| -func (m *memcacheImpl) DeleteMulti(keys []string) error {
|
| - lme := errors.NewLazyMultiError(len(keys))
|
| - i := 0
|
| - err := m.RawInterface.DeleteMulti(keys, func(err error) {
|
| - lme.Assign(i, err)
|
| - i++
|
| - })
|
| - if err == nil {
|
| - err = lme.Get()
|
| - }
|
| - return err
|
| -}
|
| -
|
| -func (m *memcacheImpl) GetMulti(items []Item) error {
|
| - lme := errors.NewLazyMultiError(len(items))
|
| - realItems, idxMap := filterItems(lme, items, ErrCacheMiss)
|
| - if len(realItems) == 0 {
|
| - return lme.Get()
|
| - }
|
| -
|
| - keys := make([]string, len(realItems))
|
| - for i, itm := range realItems {
|
| - keys[i] = itm.Key()
|
| - }
|
| -
|
| - j := 0
|
| - err := m.RawInterface.GetMulti(keys, func(item Item, err error) {
|
| - i := idxMap[j]
|
| - if !lme.Assign(i, err) {
|
| - items[i].SetAll(item)
|
| - }
|
| - j++
|
| - })
|
| - if err == nil {
|
| - err = lme.Get()
|
| - }
|
| - return err
|
| -}
|
| -
|
| -func (m *memcacheImpl) Increment(key string, delta int64, initialValue uint64) (newValue uint64, err error) {
|
| - return m.RawInterface.Increment(key, delta, &initialValue)
|
| -}
|
| -
|
| -func (m *memcacheImpl) IncrementExisting(key string, delta int64) (newValue uint64, err error) {
|
| - return m.RawInterface.Increment(key, delta, nil)
|
| -}
|
| -
|
| -func (m *memcacheImpl) Raw() RawInterface { return m.RawInterface }
|
| -
|
| -// Get gets the current memcache implementation from the context.
|
| -func Get(c context.Context) Interface {
|
| - return &memcacheImpl{GetRaw(c)}
|
| -}
|
|
|