OLD | NEW |
1 // Copyright 2015 The LUCI Authors. All rights reserved. | 1 // Copyright 2015 The LUCI Authors. All rights reserved. |
2 // Use of this source code is governed under the Apache License, Version 2.0 | 2 // Use of this source code is governed under the Apache License, Version 2.0 |
3 // that can be found in the LICENSE file. | 3 // that can be found in the LICENSE file. |
4 | 4 |
5 package memory | 5 package memory |
6 | 6 |
7 import ( | 7 import ( |
8 "bytes" | 8 "bytes" |
9 "errors" | 9 "errors" |
10 "fmt" | 10 "fmt" |
11 | 11 |
12 ds "github.com/luci/gae/service/datastore" | 12 ds "github.com/luci/gae/service/datastore" |
13 "github.com/luci/gae/service/datastore/serialize" | 13 "github.com/luci/gae/service/datastore/serialize" |
14 » "github.com/luci/luci-go/common/cmpbin" | 14 » "github.com/luci/luci-go/common/data/cmpbin" |
15 » "github.com/luci/luci-go/common/stringset" | 15 » "github.com/luci/luci-go/common/data/stringset" |
16 ) | 16 ) |
17 | 17 |
18 type queryStrategy interface { | 18 type queryStrategy interface { |
19 // handle applies the strategy to the embedded user callback. | 19 // handle applies the strategy to the embedded user callback. |
20 // - rawData is the slice of encoded Properties from the index row | 20 // - rawData is the slice of encoded Properties from the index row |
21 // (correctly de-inverted). | 21 // (correctly de-inverted). |
22 // - decodedProps is the slice of decoded Properties from the index ro
w | 22 // - decodedProps is the slice of decoded Properties from the index ro
w |
23 // - key is the decoded Key from the index row (the last item in rawDa
ta and | 23 // - key is the decoded Key from the index row (the last item in rawDa
ta and |
24 // decodedProps) | 24 // decodedProps) |
25 // - gc is the getCursor function to be passed to the user's callback | 25 // - gc is the getCursor function to be passed to the user's callback |
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
291 keyProp := decodedProps[len(decodedProps)-1] | 291 keyProp := decodedProps[len(decodedProps)-1] |
292 if keyProp.Type() != ds.PTKey { | 292 if keyProp.Type() != ds.PTKey { |
293 impossible(fmt.Errorf("decoded index row doesn't end wit
h a Key: %#v", keyProp)) | 293 impossible(fmt.Errorf("decoded index row doesn't end wit
h a Key: %#v", keyProp)) |
294 } | 294 } |
295 | 295 |
296 return strategy.handle( | 296 return strategy.handle( |
297 rawData, decodedProps, keyProp.Value().(*ds.Key), | 297 rawData, decodedProps, keyProp.Value().(*ds.Key), |
298 getCursorFn(suffix)) | 298 getCursorFn(suffix)) |
299 }) | 299 }) |
300 } | 300 } |
OLD | NEW |