OLD | NEW |
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 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 return inner | 75 return inner |
76 } | 76 } |
77 | 77 |
78 // GetMeta is like PropertyLoadSaver.GetMeta, but it also takes an index | 78 // GetMeta is like PropertyLoadSaver.GetMeta, but it also takes an index |
79 // indicating which slot you want metadata for. If idx isn't there, this | 79 // indicating which slot you want metadata for. If idx isn't there, this |
80 // returns (nil, ErrMetaFieldUnset). | 80 // returns (nil, ErrMetaFieldUnset). |
81 func (m MultiMetaGetter) GetMeta(idx int, key string) (interface{}, error) { | 81 func (m MultiMetaGetter) GetMeta(idx int, key string) (interface{}, error) { |
82 return m.GetSingle(idx).GetMeta(key) | 82 return m.GetSingle(idx).GetMeta(key) |
83 } | 83 } |
84 | 84 |
85 // GetMetaDefault is like PropertyLoadSaver.GetMetaDefault, but it also takes an | |
86 // index indicating which slot you want metadata for. If idx isn't there, this | |
87 // returns dflt. | |
88 func (m MultiMetaGetter) GetMetaDefault(idx int, key string, dflt interface{}) i
nterface{} { | |
89 return m.GetSingle(idx).GetMetaDefault(key, dflt) | |
90 } | |
91 | |
92 // GetSingle gets a single MetaGetter at the specified index. | 85 // GetSingle gets a single MetaGetter at the specified index. |
93 func (m MultiMetaGetter) GetSingle(idx int) MetaGetter { | 86 func (m MultiMetaGetter) GetSingle(idx int) MetaGetter { |
94 if idx >= len(m) || m[idx] == nil { | 87 if idx >= len(m) || m[idx] == nil { |
95 return nullMetaGetter | 88 return nullMetaGetter |
96 } | 89 } |
97 return m[idx] | 90 return m[idx] |
98 } | 91 } |
99 | 92 |
100 // RawInterface implements the datastore functionality without any of the fancy | 93 // RawInterface implements the datastore functionality without any of the fancy |
101 // reflection stuff. This is so that Filters can avoid doing lots of redundant | 94 // reflection stuff. This is so that Filters can avoid doing lots of redundant |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
168 // - len(keys) > 0 | 161 // - len(keys) > 0 |
169 // - all keys are Valid, !Incomplete, and in the current namespace | 162 // - all keys are Valid, !Incomplete, and in the current namespace |
170 // - none keys of the keys are 'special' (use a kind prefixed with '__
') | 163 // - none keys of the keys are 'special' (use a kind prefixed with '__
') |
171 // - cb is not nil | 164 // - cb is not nil |
172 DeleteMulti(keys []*Key, cb DeleteMultiCB) error | 165 DeleteMulti(keys []*Key, cb DeleteMultiCB) error |
173 | 166 |
174 // Testable returns the Testable interface for the implementation, or ni
l if | 167 // Testable returns the Testable interface for the implementation, or ni
l if |
175 // there is none. | 168 // there is none. |
176 Testable() Testable | 169 Testable() Testable |
177 } | 170 } |
OLD | NEW |