| Index: go/src/infra/gae/libs/wrapper/gae/context.go
|
| diff --git a/go/src/infra/gae/libs/wrapper/gae/context.go b/go/src/infra/gae/libs/wrapper/gae/context.go
|
| index be90906df6140acbb26abb6baaeeed7a9b98028c..2bf13f2a14e089975dcb869db606b475307f7baa 100644
|
| --- a/go/src/infra/gae/libs/wrapper/gae/context.go
|
| +++ b/go/src/infra/gae/libs/wrapper/gae/context.go
|
| @@ -5,6 +5,7 @@
|
| package gae
|
|
|
| import (
|
| + "errors"
|
| "golang.org/x/net/context"
|
|
|
| "appengine"
|
| @@ -12,15 +13,25 @@ import (
|
| "github.com/mjibson/goon"
|
| )
|
|
|
| -// Enable adds the appengine Context to c.
|
| -func Enable(c context.Context, gaeCtx appengine.Context) context.Context {
|
| - return context.WithValue(c, goonContextKey, goon.FromContext(gaeCtx))
|
| -}
|
| -
|
| -// Use calls ALL of this packages Use* methods on c. This enables all
|
| -// gae/wrapper Get* api's.
|
| -func Use(c context.Context) context.Context {
|
| - return UseDS(UseMC(UseTQ(UseGI(c))))
|
| +// Use adds implementations for the following gae/wrapper interfaces to the
|
| +// context:
|
| +// * wrapper.Datastore
|
| +// * wrapper.TaskQueue
|
| +// * wrapper.Memcache
|
| +// * wrapper.GlobalInfo
|
| +//
|
| +// These can be retrieved with the "gae/wrapper".Get functions.
|
| +//
|
| +// The implementations are all backed by the real "appengine" SDK functionality,
|
| +// and by "github.com/mjibson/goon".
|
| +//
|
| +// Using this more than once per context.Context will cause a panic.
|
| +func Use(c context.Context, gaeCtx appengine.Context) context.Context {
|
| + if c.Value(goonContextKey) != nil {
|
| + panic(errors.New("gae.Use: called twice on the same Context"))
|
| + }
|
| + c = context.WithValue(c, goonContextKey, goon.FromContext(gaeCtx))
|
| + return useDS(useMC(useTQ(useGI(c))))
|
| }
|
|
|
| type key int
|
|
|