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

Side by Side Diff: filter/featureBreaker/mc.go

Issue 1270063003: Make the rest of the services have a similar raw/user interface structure. (Closed) Base URL: https://github.com/luci/gae.git@add_datastore
Patch Set: address comments Created 5 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 unified diff | Download patch
« no previous file with comments | « filter/count/tq.go ('k') | filter/featureBreaker/tq.go » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package featureBreaker 5 package featureBreaker
6 6
7 import ( 7 import (
8 "golang.org/x/net/context" 8 "golang.org/x/net/context"
9 9
10 mc "github.com/luci/gae/service/memcache" 10 mc "github.com/luci/gae/service/memcache"
11 ) 11 )
12 12
13 type mcState struct { 13 type mcState struct {
14 *state 14 *state
15 15
16 » mc.Interface 16 » mc.RawInterface
17 } 17 }
18 18
19 func (m *mcState) Get(key string) (ret mc.Item, err error) { 19 func (m *mcState) GetMulti(keys []string, cb mc.RawItemCB) error {
20 » err = m.run(func() (err error) { 20 » return m.run(func() error { return m.RawInterface.GetMulti(keys, cb) })
21 » » ret, err = m.Interface.Get(key)
22 » » return
23 » })
24 » return
25 } 21 }
26 22
27 func (m *mcState) GetMulti(keys []string) (ret map[string]mc.Item, err error) { 23 func (m *mcState) AddMulti(items []mc.Item, cb mc.RawCB) error {
28 » err = m.run(func() (err error) { 24 » return m.run(func() error { return m.RawInterface.AddMulti(items, cb) })
29 » » ret, err = m.Interface.GetMulti(keys)
30 » » return
31 » })
32 » return
33 } 25 }
34 26
35 func (m *mcState) Add(item mc.Item) error { 27 func (m *mcState) SetMulti(items []mc.Item, cb mc.RawCB) error {
36 » return m.run(func() error { return m.Interface.Add(item) }) 28 » return m.run(func() error { return m.RawInterface.SetMulti(items, cb) })
37 } 29 }
38 30
39 func (m *mcState) Set(item mc.Item) error { 31 func (m *mcState) DeleteMulti(keys []string, cb mc.RawCB) error {
40 » return m.run(func() error { return m.Interface.Set(item) }) 32 » return m.run(func() error { return m.RawInterface.DeleteMulti(keys, cb) })
41 } 33 }
42 34
43 func (m *mcState) Delete(key string) error { 35 func (m *mcState) CompareAndSwapMulti(items []mc.Item, cb mc.RawCB) error {
44 » return m.run(func() error { return m.Interface.Delete(key) }) 36 » return m.run(func() error { return m.RawInterface.CompareAndSwapMulti(it ems, cb) })
45 }
46
47 func (m *mcState) CompareAndSwap(item mc.Item) error {
48 » return m.run(func() error { return m.Interface.CompareAndSwap(item) })
49 }
50
51 func (m *mcState) AddMulti(items []mc.Item) error {
52 » return m.run(func() error { return m.Interface.AddMulti(items) })
53 }
54
55 func (m *mcState) SetMulti(items []mc.Item) error {
56 » return m.run(func() error { return m.Interface.SetMulti(items) })
57 }
58
59 func (m *mcState) DeleteMulti(keys []string) error {
60 » return m.run(func() error { return m.Interface.DeleteMulti(keys) })
61 } 37 }
62 38
63 func (m *mcState) Flush() error { 39 func (m *mcState) Flush() error {
64 » return m.run(func() error { return m.Interface.Flush() }) 40 » return m.run(m.RawInterface.Flush)
65 }
66
67 func (m *mcState) CompareAndSwapMulti(items []mc.Item) error {
68 » return m.run(func() error { return m.Interface.CompareAndSwapMulti(items ) })
69 }
70
71 func (m *mcState) Increment(key string, delta int64, initialValue uint64) (newVa lue uint64, err error) {
72 » err = m.run(func() (err error) {
73 » » newValue, err = m.Interface.Increment(key, delta, initialValue)
74 » » return
75 » })
76 » return
77 }
78
79 func (m *mcState) IncrementExisting(key string, delta int64) (newValue uint64, e rr error) {
80 » err = m.run(func() (err error) {
81 » » newValue, err = m.Interface.IncrementExisting(key, delta)
82 » » return
83 » })
84 » return
85 } 41 }
86 42
87 func (m *mcState) Stats() (ret *mc.Statistics, err error) { 43 func (m *mcState) Stats() (ret *mc.Statistics, err error) {
88 err = m.run(func() (err error) { 44 err = m.run(func() (err error) {
89 » » ret, err = m.Interface.Stats() 45 » » ret, err = m.RawInterface.Stats()
90 return 46 return
91 }) 47 })
92 return 48 return
93 } 49 }
94 50
95 // FilterMC installs a counter mc filter in the context. 51 // FilterMC installs a counter mc filter in the context.
96 func FilterMC(c context.Context, defaultError error) (context.Context, FeatureBr eaker) { 52 func FilterMC(c context.Context, defaultError error) (context.Context, FeatureBr eaker) {
97 state := newState(defaultError) 53 state := newState(defaultError)
98 » return mc.AddFilters(c, func(ic context.Context, rds mc.Interface) mc.In terface { 54 » return mc.AddRawFilters(c, func(ic context.Context, rds mc.RawInterface) mc.RawInterface {
99 return &mcState{state, rds} 55 return &mcState{state, rds}
100 }), state 56 }), state
101 } 57 }
OLDNEW
« no previous file with comments | « filter/count/tq.go ('k') | filter/featureBreaker/tq.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698