Index: service/datastore/raw_interface.go |
diff --git a/service/datastore/raw_interface.go b/service/datastore/raw_interface.go |
index 87715311f9011e4597bd38920064030c2a8ed7ab..d36a0b69d06f6d3448475c57fd22b08eb51618db 100644 |
--- a/service/datastore/raw_interface.go |
+++ b/service/datastore/raw_interface.go |
@@ -51,16 +51,16 @@ type Query interface { |
Start(c Cursor) Query |
} |
-// RunCB is the callback signature provided to Interface.Run |
+// RawRunCB is the callback signature provided to RawInterface.Run |
// |
// - key is the Key of the entity |
// - val is the data of the entity (or nil, if the query was keys-only) |
// - getCursor can be invoked to obtain the current cursor. |
// |
// Return true to continue iterating through the query results, or false to stop. |
-type RunCB func(key Key, val PropertyMap, getCursor func() (Cursor, error)) bool |
+type RawRunCB func(key Key, val PropertyMap, getCursor func() (Cursor, error)) bool |
-// GetMultiCB is the callback signature provided to Interface.GetMulti |
+// GetMultiCB is the callback signature provided to RawInterface.GetMulti |
// |
// - val is the data of the entity |
// * It may be nil if some of the keys to the GetMulti were bad, since all |
@@ -68,7 +68,7 @@ type RunCB func(key Key, val PropertyMap, getCursor func() (Cursor, error)) bool |
// - err is an error associated with this entity (e.g. ErrNoSuchEntity). |
type GetMultiCB func(val PropertyMap, err error) |
-// PutMultiCB is the callback signature provided to Interface.PutMulti |
+// PutMultiCB is the callback signature provided to RawInterface.PutMulti |
// |
// - key is the new key for the entity (if the original was incomplete) |
// * It may be nil if some of the keys/vals to the PutMulti were bad, since |
@@ -76,23 +76,33 @@ type GetMultiCB func(val PropertyMap, err error) |
// - err is an error associated with putting this entity. |
type PutMultiCB func(key Key, err error) |
-// DeleteMultiCB is the callback signature provided to Interface.DeleteMulti |
+// DeleteMultiCB is the callback signature provided to RawInterface.DeleteMulti |
// |
// - err is an error associated with deleting this entity. |
type DeleteMultiCB func(err error) |
-// Interface implements the datastore functionality without any of the fancy |
+// RawInterface implements the datastore functionality without any of the fancy |
// reflection stuff. This is so that Filters can avoid doing lots of redundant |
-// reflection work. See datastore.Interface for a more user-friendly interface. |
-type Interface interface { |
+// reflection work. See datastore.RawInterface for a more user-friendly interface. |
+type RawInterface interface { |
NewKey(kind, stringID string, intID int64, parent Key) Key |
DecodeKey(encoded string) (Key, error) |
NewQuery(kind string) Query |
+ // RunInTransaction runs f in a transaction. |
+ // |
+ // opts may be nil. |
+ // |
+ // NOTE: Implementations and filters are guaranteed that: |
+ // - f is not nil |
RunInTransaction(f func(c context.Context) error, opts *TransactionOptions) error |
// Run executes the given query, and calls `cb` for each successfully item. |
- Run(q Query, cb RunCB) error |
+ // |
+ // NOTE: Implementations and filters are guaranteed that: |
+ // - query is not nil |
+ // - cb is not nil |
+ Run(q Query, cb RawRunCB) error |
// GetMulti retrieves items from the datastore. |
// |
@@ -100,28 +110,33 @@ type Interface interface { |
// execute at all if there's a server error. If callback is nil, this |
// method does nothing. |
// |
- // NOTE: Implementations and filters are guaranteed that keys are all Valid |
- // and Complete, and in the correct namespace. |
+ // NOTE: Implementations and filters are guaranteed that: |
+ // - len(keys) > 0 |
+ // - all keys are Valid, !Incomplete, and in the current namespace |
+ // - cb is not nil |
GetMulti(keys []Key, cb GetMultiCB) error |
// PutMulti writes items to the datastore. |
// |
- // Callback execues once per item, in the order of itemss. Callback may not |
- // execute at all if there's a server error. |
+ // Callback execues once per key/value pair, in the passed-in order. Callback |
+ // may not execute at all if there was a server error. |
// |
- // NOTE: Implementations and filters are guaranteed that len(keys) == |
- // len(vals), that keys are all Valid, and in the correct namespace. |
- // Additionally, vals are guaranteed to be PropertyMaps already. Callback |
- // may be nil. |
- PutMulti(keys []Key, vals []PropertyLoadSaver, cb PutMultiCB) error |
+ // NOTE: Implementations and filters are guaranteed that: |
+ // - len(keys) > 0 |
+ // - len(keys) == len(vals) |
+ // - all keys are Valid and in the current namespace |
+ // - cb is not nil |
+ PutMulti(keys []Key, vals []PropertyMap, cb PutMultiCB) error |
// DeleteMulti removes items from the datastore. |
// |
// Callback execues once per key, in the order of keys. Callback may not |
// execute at all if there's a server error. |
// |
- // NOTE: Implementations and filters are guaranteed that keys are all Valid |
- // and Complete, and in the correct namespace, and are not 'special'. |
- // Callback may be nil. |
+ // NOTE: Implementations and filters are guaranteed that |
+ // - len(keys) > 0 |
+ // - all keys are Valid, !Incomplete, and in the current namespace |
+ // - none keys of the keys are 'special' (use a kind prefixed with '__') |
+ // - cb is not nil |
DeleteMulti(keys []Key, cb DeleteMultiCB) error |
} |