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

Side by Side Diff: impl/memory/datastore.go

Issue 1309933003: datastore: Add DecodeCursor to [Raw]Interface. (Closed) Base URL: https://github.com/luci/gae@master
Patch Set: Use more concise formulation. 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 | « impl/dummy/dummy.go ('k') | impl/memory/datastore_query.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 memory 5 package memory
6 6
7 import ( 7 import (
8 "errors" 8 "errors"
9 "fmt" 9 "fmt"
10 10
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 61
62 func (d *dsImpl) DeleteMulti(keys []ds.Key, cb ds.DeleteMultiCB) error { 62 func (d *dsImpl) DeleteMulti(keys []ds.Key, cb ds.DeleteMultiCB) error {
63 d.data.delMulti(keys, cb) 63 d.data.delMulti(keys, cb)
64 return nil 64 return nil
65 } 65 }
66 66
67 func (d *dsImpl) NewQuery(kind string) ds.Query { 67 func (d *dsImpl) NewQuery(kind string) ds.Query {
68 return &queryImpl{ns: d.ns, kind: kind} 68 return &queryImpl{ns: d.ns, kind: kind}
69 } 69 }
70 70
71 func (d *dsImpl) DecodeCursor(s string) (ds.Cursor, error) {
72 return decodeCursor(s)
73 }
74
71 func (d *dsImpl) Run(q ds.Query, cb ds.RawRunCB) error { 75 func (d *dsImpl) Run(q ds.Query, cb ds.RawRunCB) error {
72 rq := q.(*queryImpl) 76 rq := q.(*queryImpl)
73 done, err := rq.valid(d.ns, true) 77 done, err := rq.valid(d.ns, true)
74 if done || err != nil { 78 if done || err != nil {
75 return err // will be nil if done 79 return err // will be nil if done
76 } 80 }
77 return nil 81 return nil
78 } 82 }
79 83
80 func (d *dsImpl) AddIndexes(idxs ...*ds.IndexDefinition) { 84 func (d *dsImpl) AddIndexes(idxs ...*ds.IndexDefinition) {
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 return d.data.getMulti(keys, cb) 138 return d.data.getMulti(keys, cb)
135 }) 139 })
136 } 140 }
137 141
138 func (d *txnDsImpl) DeleteMulti(keys []ds.Key, cb ds.DeleteMultiCB) error { 142 func (d *txnDsImpl) DeleteMulti(keys []ds.Key, cb ds.DeleteMultiCB) error {
139 return d.data.run(func() error { 143 return d.data.run(func() error {
140 return d.data.delMulti(keys, cb) 144 return d.data.delMulti(keys, cb)
141 }) 145 })
142 } 146 }
143 147
148 func (d *txnDsImpl) DecodeCursor(s string) (ds.Cursor, error) {
149 return decodeCursor(s)
150 }
151
144 func (d *txnDsImpl) Run(q ds.Query, cb ds.RawRunCB) error { 152 func (d *txnDsImpl) Run(q ds.Query, cb ds.RawRunCB) error {
145 rq := q.(*queryImpl) 153 rq := q.(*queryImpl)
146 done, err := rq.valid(d.ns, true) 154 done, err := rq.valid(d.ns, true)
147 if done || err != nil { 155 if done || err != nil {
148 return err // will be nil if done 156 return err // will be nil if done
149 } 157 }
150 if rq.eventualConsistency { 158 if rq.eventualConsistency {
151 rq = rq.checkMutateClone(nil, nil) 159 rq = rq.checkMutateClone(nil, nil)
152 rq.eventualConsistency = false 160 rq.eventualConsistency = false
153 } 161 }
154 // TODO(riannucci): use head instead of snap for indexes 162 // TODO(riannucci): use head instead of snap for indexes
155 panic("NOT IMPLEMENTED") 163 panic("NOT IMPLEMENTED")
156 } 164 }
157 165
158 func (*txnDsImpl) RunInTransaction(func(c context.Context) error, *ds.Transactio nOptions) error { 166 func (*txnDsImpl) RunInTransaction(func(c context.Context) error, *ds.Transactio nOptions) error {
159 return errors.New("datastore: nested transactions are not supported") 167 return errors.New("datastore: nested transactions are not supported")
160 } 168 }
161 169
162 func (d *txnDsImpl) NewQuery(kind string) ds.Query { 170 func (d *txnDsImpl) NewQuery(kind string) ds.Query {
163 return &queryImpl{ns: d.ns, kind: kind} 171 return &queryImpl{ns: d.ns, kind: kind}
164 } 172 }
165 173
166 func (*txnDsImpl) Testable() ds.Testable { 174 func (*txnDsImpl) Testable() ds.Testable {
167 return nil 175 return nil
168 } 176 }
OLDNEW
« no previous file with comments | « impl/dummy/dummy.go ('k') | impl/memory/datastore_query.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698