Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 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 | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 package dscache | |
| 6 | |
| 7 import ( | |
| 8 ds "github.com/luci/gae/service/datastore" | |
| 9 ) | |
| 10 | |
| 11 type dsTxnCache struct { | |
| 12 ds.RawInterface | |
| 13 | |
| 14 state *dsTxnState | |
| 15 | |
| 16 sc *supportContext | |
|
Vadim Sh.
2015/08/06 01:23:33
so what happens with Gets in transaction? I'm lost
iannucci
2015/08/06 02:37:33
documented, but all methods that aren't DeleteMult
| |
| 17 } | |
| 18 | |
| 19 var _ ds.RawInterface = (*dsTxnCache)(nil) | |
| 20 | |
| 21 func (d *dsTxnCache) DeleteMulti(keys []ds.Key, cb ds.DeleteMultiCB) error { | |
| 22 d.state.Add(d.sc, keys) | |
| 23 return d.RawInterface.DeleteMulti(keys, cb) | |
| 24 } | |
| 25 | |
| 26 func (d *dsTxnCache) PutMulti(keys []ds.Key, metas []ds.PropertyMap, cb ds.PutMu ltiCB) error { | |
| 27 d.state.Add(d.sc, keys) | |
| 28 return d.RawInterface.PutMulti(keys, metas, cb) | |
| 29 } | |
| 30 | |
| 31 // TODO(riannucci): on GetAll, Load from memcache and invalidate entries if the | |
| 32 // memcache version doesn't match the datastore version. | |
| OLD | NEW |