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

Side by Side Diff: service/datastore/raw_interface.go

Issue 1357343002: Add missing AllocateIDs API. (Closed) Base URL: https://github.com/luci/gae.git@master
Patch Set: add panic Created 5 years, 3 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 | « service/datastore/interface.go ('k') | no next file » | 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 datastore 5 package datastore
6 6
7 import ( 7 import (
8 "fmt" 8 "fmt"
9 9
10 "golang.org/x/net/context" 10 "golang.org/x/net/context"
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 // GetSingle gets a single MetaGetter at the specified index. 92 // GetSingle gets a single MetaGetter at the specified index.
93 func (m MultiMetaGetter) GetSingle(idx int) MetaGetter { 93 func (m MultiMetaGetter) GetSingle(idx int) MetaGetter {
94 if idx >= len(m) || m[idx] == nil { 94 if idx >= len(m) || m[idx] == nil {
95 return nullMetaGetter 95 return nullMetaGetter
96 } 96 }
97 return m[idx] 97 return m[idx]
98 } 98 }
99 99
100 // RawInterface implements the datastore functionality without any of the fancy 100 // RawInterface implements the datastore functionality without any of the fancy
101 // reflection stuff. This is so that Filters can avoid doing lots of redundant 101 // reflection stuff. This is so that Filters can avoid doing lots of redundant
102 // reflection work. See datastore.RawInterface for a more user-friendly interfac e. 102 // reflection work. See datastore.Interface for a more user-friendly interface.
103 type RawInterface interface { 103 type RawInterface interface {
104 // AllocateIDs allows you to allocate IDs from the datastore without put ting
105 // any data. `incomplete` must be a PartialValid Key. If there's no erro r,
106 // a contiguous block of IDs of n length starting at `start` will be res erved
107 // indefinitely for the user application code for use in new keys. The
108 // appengine automatic ID generator will never automatically assign thes e IDs
109 // for Keys of this type.
110 AllocateIDs(incomplete *Key, n int) (start int64, err error)
111
104 // RunInTransaction runs f in a transaction. 112 // RunInTransaction runs f in a transaction.
105 // 113 //
106 // opts may be nil. 114 // opts may be nil.
107 // 115 //
108 // NOTE: Implementations and filters are guaranteed that: 116 // NOTE: Implementations and filters are guaranteed that:
109 // - f is not nil 117 // - f is not nil
110 RunInTransaction(f func(c context.Context) error, opts *TransactionOptio ns) error 118 RunInTransaction(f func(c context.Context) error, opts *TransactionOptio ns) error
111 119
112 // DecodeCursor converts a string returned by a Cursor into a Cursor ins tance. 120 // DecodeCursor converts a string returned by a Cursor into a Cursor ins tance.
113 // It will return an error if the supplied string is not valid, or could not 121 // It will return an error if the supplied string is not valid, or could not
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 // - len(keys) > 0 164 // - len(keys) > 0
157 // - all keys are Valid, !Incomplete, and in the current namespace 165 // - all keys are Valid, !Incomplete, and in the current namespace
158 // - none keys of the keys are 'special' (use a kind prefixed with '__ ') 166 // - none keys of the keys are 'special' (use a kind prefixed with '__ ')
159 // - cb is not nil 167 // - cb is not nil
160 DeleteMulti(keys []*Key, cb DeleteMultiCB) error 168 DeleteMulti(keys []*Key, cb DeleteMultiCB) error
161 169
162 // Testable returns the Testable interface for the implementation, or ni l if 170 // Testable returns the Testable interface for the implementation, or ni l if
163 // there is none. 171 // there is none.
164 Testable() Testable 172 Testable() Testable
165 } 173 }
OLDNEW
« no previous file with comments | « service/datastore/interface.go ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698