// Get implements Cache. func (cache *Cache) Get(key string, params imageserver.Params) (*imageserver.Image, error) { data, err := cache.getData(key) if err != nil { return nil, err } if data == nil { return nil, nil } im := new(imageserver.Image) err = im.UnmarshalBinaryNoCopy(data) if err != nil { return nil, err } return im, nil }
// Get implements Server. func (srv *Server) Get(params imageserver.Params) (*imageserver.Image, error) { ctx := &Context{ Params: params, } key := srv.KeyGenerator.GetKey(params) var data []byte dest := groupcache.AllocatingByteSliceSink(&data) err := srv.Group.Get(ctx, key, dest) if err != nil { return nil, err } im := new(imageserver.Image) err = im.UnmarshalBinaryNoCopy(data) if err != nil { return nil, err } return im, nil }