mirror of
https://github.com/rclone/rclone.git
synced 2024-11-23 08:54:10 +01:00
e7bd392a69
This fixes an important bug with listing that affects users with more than 500 objects in a listing operation.
75 lines
1.3 KiB
Markdown
75 lines
1.3 KiB
Markdown
# package drpccache
|
|
|
|
`import "storj.io/drpc/drpccache"`
|
|
|
|
Package drpccache implements per stream cache for drpc.
|
|
|
|
## Usage
|
|
|
|
#### func WithContext
|
|
|
|
```go
|
|
func WithContext(parent context.Context, cache *Cache) context.Context
|
|
```
|
|
WithContext returns a context with the value cache associated with the context.
|
|
|
|
#### type Cache
|
|
|
|
```go
|
|
type Cache struct {
|
|
}
|
|
```
|
|
|
|
Cache is a per stream cache.
|
|
|
|
#### func FromContext
|
|
|
|
```go
|
|
func FromContext(ctx context.Context) *Cache
|
|
```
|
|
FromContext returns a cache from a context.
|
|
|
|
Example usage:
|
|
|
|
cache := drpccache.FromContext(stream.Context())
|
|
if cache != nil {
|
|
value := cache.LoadOrCreate("initialized", func() (interface{}) {
|
|
return 42
|
|
})
|
|
}
|
|
|
|
#### func New
|
|
|
|
```go
|
|
func New() *Cache
|
|
```
|
|
New returns a new cache.
|
|
|
|
#### func (*Cache) Clear
|
|
|
|
```go
|
|
func (cache *Cache) Clear()
|
|
```
|
|
Clear clears the cache.
|
|
|
|
#### func (*Cache) Load
|
|
|
|
```go
|
|
func (cache *Cache) Load(key interface{}) interface{}
|
|
```
|
|
Load returns the value with the given key.
|
|
|
|
#### func (*Cache) LoadOrCreate
|
|
|
|
```go
|
|
func (cache *Cache) LoadOrCreate(key interface{}, fn func() interface{}) interface{}
|
|
```
|
|
LoadOrCreate returns the value with the given key.
|
|
|
|
#### func (*Cache) Store
|
|
|
|
```go
|
|
func (cache *Cache) Store(key, value interface{})
|
|
```
|
|
Store sets the value at a key.
|