| Index: go/src/infra/gae/libs/wrapper/datastore.go
|
| diff --git a/go/src/infra/gae/libs/wrapper/datastore.go b/go/src/infra/gae/libs/wrapper/datastore.go
|
| deleted file mode 100644
|
| index 68c86fdd134e0eadcbd0b58a3ad55048d9c5fb58..0000000000000000000000000000000000000000
|
| --- a/go/src/infra/gae/libs/wrapper/datastore.go
|
| +++ /dev/null
|
| @@ -1,139 +0,0 @@
|
| -// Copyright 2015 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -package wrapper
|
| -
|
| -import (
|
| - "fmt"
|
| -
|
| - "golang.org/x/net/context"
|
| -
|
| - "appengine/datastore"
|
| -
|
| - "github.com/mjibson/goon"
|
| -)
|
| -
|
| -/// Kinds + Keys
|
| -
|
| -// DSKinder simply allows you to resolve the datastore 'kind' of an object.
|
| -// See goon.Goon.Kind().
|
| -type DSKinder interface {
|
| - Kind(src interface{}) string
|
| -}
|
| -
|
| -// DSKindSetter allows you to manipulate the current Kind resolution function.
|
| -// See goon.Goon.KindNameResolver.
|
| -type DSKindSetter interface {
|
| - KindNameResolver() goon.KindNameResolver
|
| - SetKindNameResolver(goon.KindNameResolver)
|
| -}
|
| -
|
| -// DSNewKeyer allows you to generate a new *datastore.Key in a couple ways.
|
| -// See goon.Goon.Key* for the NewKeyObj* methods, as well as datastore.NewKey.
|
| -type DSNewKeyer interface {
|
| - NewKey(kind, stringID string, intID int64, parent *datastore.Key) *datastore.Key
|
| - NewKeyObj(src interface{}) *datastore.Key
|
| - NewKeyObjError(src interface{}) (*datastore.Key, error)
|
| -}
|
| -
|
| -/// Read + Write
|
| -
|
| -// DSSingleReadWriter allows you to read and write a single datastore object.
|
| -// See goon.Goon for more detail on the same-named functions.
|
| -type DSSingleReadWriter interface {
|
| - Put(src interface{}) (*datastore.Key, error)
|
| - Get(dst interface{}) error
|
| - Delete(key *datastore.Key) error
|
| -}
|
| -
|
| -// DSMultiReadWriter allows you to read and write a multiple datastore objects
|
| -// in a non-atomic batch. See goon.Goon for more detail on the same-named.
|
| -// functions. Also implies DSSingleReadWriter.
|
| -type DSMultiReadWriter interface {
|
| - DSSingleReadWriter
|
| - DeleteMulti(keys []*datastore.Key) error
|
| - GetMulti(dst interface{}) error
|
| - PutMulti(src interface{}) ([]*datastore.Key, error)
|
| -}
|
| -
|
| -/// Queries
|
| -
|
| -// DSCursor wraps datastore.Cursor.
|
| -type DSCursor interface {
|
| - fmt.Stringer
|
| -}
|
| -
|
| -// DSIterator wraps datastore.Iterator.
|
| -type DSIterator interface {
|
| - Cursor() (DSCursor, error)
|
| - Next(dst interface{}) (*datastore.Key, error)
|
| -}
|
| -
|
| -// DSQuery wraps datastore.Query.
|
| -type DSQuery interface {
|
| - Ancestor(ancestor *datastore.Key) DSQuery
|
| - Distinct() DSQuery
|
| - End(c DSCursor) DSQuery
|
| - EventualConsistency() DSQuery
|
| - Filter(filterStr string, value interface{}) DSQuery
|
| - KeysOnly() DSQuery
|
| - Limit(limit int) DSQuery
|
| - Offset(offset int) DSQuery
|
| - Order(fieldName string) DSQuery
|
| - Project(fieldNames ...string) DSQuery
|
| - Start(c DSCursor) DSQuery
|
| -}
|
| -
|
| -// DSQueryer implements all query-related functionality of goon.Goon/datastore.
|
| -type DSQueryer interface {
|
| - NewQuery(kind string) DSQuery
|
| - Run(q DSQuery) DSIterator
|
| - GetAll(q DSQuery, dst interface{}) ([]*datastore.Key, error)
|
| - Count(q DSQuery) (int, error)
|
| -}
|
| -
|
| -/// Transactions
|
| -
|
| -// DSTransactioner implements the function for entering a transaction with
|
| -// datastore. The function receives a context without the ability to enter a
|
| -// transaction again (since recursive transactions are not implemented in
|
| -// datastore).
|
| -type DSTransactioner interface {
|
| - RunInTransaction(f func(c context.Context) error, opts *datastore.TransactionOptions) error
|
| -}
|
| -
|
| -// Datastore implements the full datastore functionality.
|
| -type Datastore interface {
|
| - DSKinder
|
| - DSNewKeyer
|
| - DSMultiReadWriter
|
| - DSQueryer
|
| - DSKindSetter
|
| - DSTransactioner
|
| -}
|
| -
|
| -// DSFactory is the function signature for factory methods compatible with
|
| -// SetDSFactory.
|
| -type DSFactory func(context.Context) Datastore
|
| -
|
| -// GetDS gets the Datastore implementation from context.
|
| -func GetDS(c context.Context) Datastore {
|
| - if f, ok := c.Value(datastoreKey).(DSFactory); ok && f != nil {
|
| - return f(c)
|
| - }
|
| - return nil
|
| -}
|
| -
|
| -// SetDSFactory sets the function to produce Datastore instances, as returned by
|
| -// the GetDS method.
|
| -func SetDSFactory(c context.Context, dsf DSFactory) context.Context {
|
| - return context.WithValue(c, datastoreKey, dsf)
|
| -}
|
| -
|
| -// SetDS sets the current Datastore object in the context. Useful for testing
|
| -// with a quick mock. This is just a shorthand SetDSFactory invocation to set
|
| -// a factory which always returns the same object.
|
| -func SetDS(c context.Context, ds Datastore) context.Context {
|
| - return SetDSFactory(c, func(context.Context) Datastore { return ds })
|
| -}
|
|
|