| Index: impl/prod/memcache.go
|
| diff --git a/prod/memcache.go b/impl/prod/memcache.go
|
| similarity index 68%
|
| rename from prod/memcache.go
|
| rename to impl/prod/memcache.go
|
| index 8a403d7a9e253dc102500e072b8689b1a26391ec..fc267c3e02c8590d26608892d66df3badbcc3ca1 100644
|
| --- a/prod/memcache.go
|
| +++ b/impl/prod/memcache.go
|
| @@ -8,6 +8,7 @@ import (
|
| "time"
|
|
|
| "github.com/luci/gae"
|
| + mc "github.com/luci/gae/service/memcache"
|
| "golang.org/x/net/context"
|
| "google.golang.org/appengine/memcache"
|
| )
|
| @@ -15,7 +16,7 @@ import (
|
| // useMC adds a gae.Memcache implementation to context, accessible
|
| // by gae.GetMC(c)
|
| func useMC(c context.Context) context.Context {
|
| - return gae.SetMCFactory(c, func(ci context.Context) gae.Memcache {
|
| + return mc.SetFactory(c, func(ci context.Context) mc.Interface {
|
| return mcImpl{ci}
|
| })
|
| }
|
| @@ -26,7 +27,7 @@ type mcItem struct {
|
| i *memcache.Item
|
| }
|
|
|
| -var _ gae.MCItem = mcItem{}
|
| +var _ mc.Item = mcItem{}
|
|
|
| func (i mcItem) Key() string { return i.i.Key }
|
| func (i mcItem) Value() []byte { return i.i.Value }
|
| @@ -34,51 +35,51 @@ func (i mcItem) Object() interface{} { return i.i.Object }
|
| func (i mcItem) Flags() uint32 { return i.i.Flags }
|
| func (i mcItem) Expiration() time.Duration { return i.i.Expiration }
|
|
|
| -func (i mcItem) SetKey(k string) gae.MCItem {
|
| +func (i mcItem) SetKey(k string) mc.Item {
|
| i.i.Key = k
|
| return i
|
| }
|
| -func (i mcItem) SetValue(v []byte) gae.MCItem {
|
| +func (i mcItem) SetValue(v []byte) mc.Item {
|
| i.i.Value = v
|
| return i
|
| }
|
| -func (i mcItem) SetObject(o interface{}) gae.MCItem {
|
| +func (i mcItem) SetObject(o interface{}) mc.Item {
|
| i.i.Object = o
|
| return i
|
| }
|
| -func (i mcItem) SetFlags(f uint32) gae.MCItem {
|
| +func (i mcItem) SetFlags(f uint32) mc.Item {
|
| i.i.Flags = f
|
| return i
|
| }
|
| -func (i mcItem) SetExpiration(d time.Duration) gae.MCItem {
|
| +func (i mcItem) SetExpiration(d time.Duration) mc.Item {
|
| i.i.Expiration = d
|
| return i
|
| }
|
|
|
| -// mcR2FErr (MC real-to-fake w/ error) converts a *memcache.Item to a gae.MCItem,
|
| +// mcR2FErr (MC real-to-fake w/ error) converts a *memcache.Item to a mc.Item,
|
| // and passes along an error.
|
| -func mcR2FErr(i *memcache.Item, err error) (gae.MCItem, error) {
|
| +func mcR2FErr(i *memcache.Item, err error) (mc.Item, error) {
|
| if err != nil {
|
| return nil, err
|
| }
|
| return mcItem{i}, nil
|
| }
|
|
|
| -// mcF2R (MC fake-to-real) converts a gae.MCItem. i must originate from inside
|
| +// mcF2R (MC fake-to-real) converts a mc.Item. i must originate from inside
|
| // this package for this function to work (see the panic message for why).
|
| -func mcF2R(i gae.MCItem) *memcache.Item {
|
| +func mcF2R(i mc.Item) *memcache.Item {
|
| if mci, ok := i.(mcItem); ok {
|
| return mci.i
|
| }
|
| panic(
|
| - "you may not use other gae.MCItem implementations with this " +
|
| + "you may not use other mc.Item implementations with this " +
|
| "implementation of gae.Memcache, since it will cause all CompareAndSwap " +
|
| "operations to fail. Please use the NewItem api instead.")
|
| }
|
|
|
| -// mcMF2R (MC multi-fake-to-real) converts a slice of gae.MCItem to a slice of
|
| +// mcMF2R (MC multi-fake-to-real) converts a slice of mc.Item to a slice of
|
| // *memcache.Item.
|
| -func mcMF2R(items []gae.MCItem) []*memcache.Item {
|
| +func mcMF2R(items []mc.Item) []*memcache.Item {
|
| realItems := make([]*memcache.Item, len(items))
|
| for i, itm := range items {
|
| realItems[i] = mcF2R(itm)
|
| @@ -86,24 +87,24 @@ func mcMF2R(items []gae.MCItem) []*memcache.Item {
|
| return realItems
|
| }
|
|
|
| -func (m mcImpl) NewItem(key string) gae.MCItem {
|
| +func (m mcImpl) NewItem(key string) mc.Item {
|
| return mcItem{&memcache.Item{Key: key}}
|
| }
|
|
|
| //////// MCSingleReadWriter
|
| -func (m mcImpl) Add(item gae.MCItem) error {
|
| +func (m mcImpl) Add(item mc.Item) error {
|
| return memcache.Add(m.Context, mcF2R(item))
|
| }
|
| -func (m mcImpl) Set(item gae.MCItem) error {
|
| +func (m mcImpl) Set(item mc.Item) error {
|
| return memcache.Set(m.Context, mcF2R(item))
|
| }
|
| func (m mcImpl) Delete(key string) error {
|
| return memcache.Delete(m.Context, key)
|
| }
|
| -func (m mcImpl) Get(key string) (gae.MCItem, error) {
|
| +func (m mcImpl) Get(key string) (mc.Item, error) {
|
| return mcR2FErr(memcache.Get(m.Context, key))
|
| }
|
| -func (m mcImpl) CompareAndSwap(item gae.MCItem) error {
|
| +func (m mcImpl) CompareAndSwap(item mc.Item) error {
|
| return memcache.CompareAndSwap(m.Context, mcF2R(item))
|
| }
|
|
|
| @@ -111,24 +112,24 @@ func (m mcImpl) CompareAndSwap(item gae.MCItem) error {
|
| func (m mcImpl) DeleteMulti(keys []string) error {
|
| return gae.FixError(memcache.DeleteMulti(m.Context, keys))
|
| }
|
| -func (m mcImpl) AddMulti(items []gae.MCItem) error {
|
| +func (m mcImpl) AddMulti(items []mc.Item) error {
|
| return gae.FixError(memcache.AddMulti(m.Context, mcMF2R(items)))
|
| }
|
| -func (m mcImpl) SetMulti(items []gae.MCItem) error {
|
| +func (m mcImpl) SetMulti(items []mc.Item) error {
|
| return gae.FixError(memcache.SetMulti(m.Context, mcMF2R(items)))
|
| }
|
| -func (m mcImpl) GetMulti(keys []string) (map[string]gae.MCItem, error) {
|
| +func (m mcImpl) GetMulti(keys []string) (map[string]mc.Item, error) {
|
| realItems, err := memcache.GetMulti(m.Context, keys)
|
| if err != nil {
|
| return nil, gae.FixError(err)
|
| }
|
| - items := make(map[string]gae.MCItem, len(realItems))
|
| + items := make(map[string]mc.Item, len(realItems))
|
| for k, itm := range realItems {
|
| items[k] = mcItem{itm}
|
| }
|
| return items, err
|
| }
|
| -func (m mcImpl) CompareAndSwapMulti(items []gae.MCItem) error {
|
| +func (m mcImpl) CompareAndSwapMulti(items []mc.Item) error {
|
| return gae.FixError(memcache.CompareAndSwapMulti(m.Context, mcMF2R(items)))
|
| }
|
|
|
| @@ -146,10 +147,10 @@ func (m mcImpl) Flush() error {
|
| }
|
|
|
| //////// MCStatter
|
| -func (m mcImpl) Stats() (*gae.MCStatistics, error) {
|
| +func (m mcImpl) Stats() (*mc.Statistics, error) {
|
| stats, err := memcache.Stats(m.Context)
|
| if err != nil {
|
| return nil, err
|
| }
|
| - return (*gae.MCStatistics)(stats), nil
|
| + return (*mc.Statistics)(stats), nil
|
| }
|
|
|