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

Side by Side Diff: filter/count/rds.go

Issue 1259593005: Add 'user friendly' datastore API. (Closed) Base URL: https://github.com/luci/gae.git@master
Patch Set: more docs 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/count_test.go ('k') | filter/featureBreaker/featurebreaker_test.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 count 5 package count
6 6
7 import ( 7 import (
8 "golang.org/x/net/context" 8 "golang.org/x/net/context"
9 9
10 ds "github.com/luci/gae/service/datastore" 10 ds "github.com/luci/gae/service/datastore"
11 ) 11 )
12 12
13 // DSCounter is the counter object for the datastore service. 13 // DSCounter is the counter object for the datastore service.
14 type DSCounter struct { 14 type DSCounter struct {
15 NewKey Entry 15 NewKey Entry
16 DecodeKey Entry 16 DecodeKey Entry
17 NewQuery Entry 17 NewQuery Entry
18 RunInTransaction Entry 18 RunInTransaction Entry
19 Run Entry 19 Run Entry
20 DeleteMulti Entry 20 DeleteMulti Entry
21 GetMulti Entry 21 GetMulti Entry
22 PutMulti Entry 22 PutMulti Entry
23 } 23 }
24 24
25 type dsCounter struct { 25 type dsCounter struct {
26 c *DSCounter 26 c *DSCounter
27 27
28 » ds ds.Interface 28 » ds ds.RawInterface
29 } 29 }
30 30
31 var _ ds.Interface = (*dsCounter)(nil) 31 var _ ds.RawInterface = (*dsCounter)(nil)
32 32
33 func (r *dsCounter) NewKey(kind, stringID string, intID int64, parent ds.Key) ds .Key { 33 func (r *dsCounter) NewKey(kind, stringID string, intID int64, parent ds.Key) ds .Key {
34 r.c.NewKey.up() 34 r.c.NewKey.up()
35 return r.ds.NewKey(kind, stringID, intID, parent) 35 return r.ds.NewKey(kind, stringID, intID, parent)
36 } 36 }
37 37
38 func (r *dsCounter) DecodeKey(encoded string) (ds.Key, error) { 38 func (r *dsCounter) DecodeKey(encoded string) (ds.Key, error) {
39 ret, err := r.ds.DecodeKey(encoded) 39 ret, err := r.ds.DecodeKey(encoded)
40 return ret, r.c.DecodeKey.up(err) 40 return ret, r.c.DecodeKey.up(err)
41 } 41 }
42 42
43 func (r *dsCounter) NewQuery(kind string) ds.Query { 43 func (r *dsCounter) NewQuery(kind string) ds.Query {
44 r.c.NewQuery.up() 44 r.c.NewQuery.up()
45 return r.ds.NewQuery(kind) 45 return r.ds.NewQuery(kind)
46 } 46 }
47 47
48 func (r *dsCounter) Run(q ds.Query, cb ds.RunCB) error { 48 func (r *dsCounter) Run(q ds.Query, cb ds.RawRunCB) error {
49 return r.c.Run.up(r.ds.Run(q, cb)) 49 return r.c.Run.up(r.ds.Run(q, cb))
50 } 50 }
51 51
52 func (r *dsCounter) RunInTransaction(f func(context.Context) error, opts *ds.Tra nsactionOptions) error { 52 func (r *dsCounter) RunInTransaction(f func(context.Context) error, opts *ds.Tra nsactionOptions) error {
53 return r.c.RunInTransaction.up(r.ds.RunInTransaction(f, opts)) 53 return r.c.RunInTransaction.up(r.ds.RunInTransaction(f, opts))
54 } 54 }
55 55
56 func (r *dsCounter) DeleteMulti(keys []ds.Key, cb ds.DeleteMultiCB) error { 56 func (r *dsCounter) DeleteMulti(keys []ds.Key, cb ds.DeleteMultiCB) error {
57 return r.c.DeleteMulti.up(r.ds.DeleteMulti(keys, cb)) 57 return r.c.DeleteMulti.up(r.ds.DeleteMulti(keys, cb))
58 } 58 }
59 59
60 func (r *dsCounter) GetMulti(keys []ds.Key, cb ds.GetMultiCB) error { 60 func (r *dsCounter) GetMulti(keys []ds.Key, cb ds.GetMultiCB) error {
61 return r.c.GetMulti.up(r.ds.GetMulti(keys, cb)) 61 return r.c.GetMulti.up(r.ds.GetMulti(keys, cb))
62 } 62 }
63 63
64 func (r *dsCounter) PutMulti(keys []ds.Key, vals []ds.PropertyLoadSaver, cb ds.P utMultiCB) error { 64 func (r *dsCounter) PutMulti(keys []ds.Key, vals []ds.PropertyMap, cb ds.PutMult iCB) error {
65 return r.c.PutMulti.up(r.ds.PutMulti(keys, vals, cb)) 65 return r.c.PutMulti.up(r.ds.PutMulti(keys, vals, cb))
66 } 66 }
67 67
68 // FilterRDS installs a counter datastore filter in the context. 68 // FilterRDS installs a counter datastore filter in the context.
69 func FilterRDS(c context.Context) (context.Context, *DSCounter) { 69 func FilterRDS(c context.Context) (context.Context, *DSCounter) {
70 state := &DSCounter{} 70 state := &DSCounter{}
71 » return ds.AddFilters(c, func(ic context.Context, ds ds.Interface) ds.Int erface { 71 » return ds.AddRawFilters(c, func(ic context.Context, ds ds.RawInterface) ds.RawInterface {
72 return &dsCounter{state, ds} 72 return &dsCounter{state, ds}
73 }), state 73 }), state
74 } 74 }
OLDNEW
« no previous file with comments | « filter/count/count_test.go ('k') | filter/featureBreaker/featurebreaker_test.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698