forked from matthewbauer/rivulet
/
appengine.go
43 lines (29 loc) · 881 Bytes
/
appengine.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// +build appengine
package main
import (
"net/http"
)
import "appengine"
import "appengine/memcache"
// context
type Context appengine.Context
func NewContext(request *http.Request) Context {
return Context(appengine.NewContext(request))
}
// memcache
var ErrCacheMiss = memcache.ErrCacheMiss
type Item memcache.Item
func memcacheGet(c Context, key string) (*Item, error) {
item, err := memcache.Get(appengine.Context(c), key)
return (*Item)(item), err
}
func memcacheSet(c Context, item *Item) error {
return memcache.Set(appengine.Context(c), (*memcache.Item)(item))
}
func memcacheGobGet(c Context, key string, v interface{}) (*Item, error) {
item, err := memcache.Gob.Get(appengine.Context(c), key, v)
return (*Item)(item), err
}
func memcacheGobSet(c Context, item *Item) error {
return memcache.Gob.Set(appengine.Context(c), (*memcache.Item)(item))
}