Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(287)

Unified Diff: service/memcache/memcache.go

Issue 2302743002: Interface update, per-method Contexts. (Closed)
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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)}
-}

Powered by Google App Engine
This is Rietveld 408576698