backends

package
v0.3.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 23, 2020 License: MIT Imports: 16 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetGroupCachePool added in v0.3.0

func GetGroupCachePool() *groupcache.HTTPPool

GetGroupCachePool gets the groupcache's httpool

func InitGroupCacheRes

func InitGroupCacheRes(maxSize int) error

InitGroupCacheRes init the resources for groupcache init this in the handler provision stage.

func InitRedisClient added in v0.2.0

func InitRedisClient(addr, password string, db int) error

InitRedisClient init the client for the redis

func NewNoPreCollectError added in v0.3.3

func NewNoPreCollectError(msg string) error

NewNoPreCollectError new a NoPreCollectError error

func ParseRedisConfig added in v0.3.0

func ParseRedisConfig(connSetting string) (*redis.Options, error)

ParseRedisConfig prases the connection settings string from the caddyfile

func ReleaseGroupCacheRes added in v0.3.0

func ReleaseGroupCacheRes() error

ReleaseGroupCacheRes releases the rousources the memory backend collects

Types

type Backend

type Backend interface {
	io.Writer
	io.Closer
	Length() int
	Clean() error
	Flush() error
	GetReader() (io.ReadCloser, error)
}

Backend is the cache storage backend.

func NewFileBackend

func NewFileBackend(path string) (Backend, error)

NewFileBackend new a disk storage backend

func NewInMemoryBackend

func NewInMemoryBackend(ctx context.Context, key string, expiration time.Time) (Backend, error)

NewInMemoryBackend get the singleton of groupcache

func NewRedisBackend added in v0.2.0

func NewRedisBackend(ctx context.Context, key string, expiration time.Time) (Backend, error)

NewRedisBackend new a redis backend for cache's storage

func WrapResponseWriterToBackend

func WrapResponseWriterToBackend(w http.ResponseWriter) Backend

type Base

type Base struct {
	// contains filtered or unexported fields
}

Base wraps the http.ResponseWriter to match the Backend interface

func (*Base) Clean

func (b *Base) Clean() error

func (*Base) Close

func (b *Base) Close() error

func (*Base) Flush

func (b *Base) Flush() error

func (*Base) GetReader

func (b *Base) GetReader() (io.ReadCloser, error)

func (*Base) Length added in v0.3.3

func (b *Base) Length() int

func (*Base) Write

func (b *Base) Write(p []byte) (n int, err error)

type FileBackend

type FileBackend struct {
	// contains filtered or unexported fields
}

FileBackend saves the content into a file

func (*FileBackend) Clean

func (f *FileBackend) Clean() error

Clean performs the purge storage

func (*FileBackend) Close

func (f *FileBackend) Close() error

func (*FileBackend) Flush

func (f *FileBackend) Flush() error

Flush syncs the underlying file

func (*FileBackend) GetReader

func (f *FileBackend) GetReader() (io.ReadCloser, error)

func (*FileBackend) Length added in v0.3.3

func (f *FileBackend) Length() int

Length return the cache content's length

func (*FileBackend) Write

func (f *FileBackend) Write(p []byte) (n int, err error)

type FileReader

type FileReader struct {
	// contains filtered or unexported fields
}

FileReader is the common code to read the storages until the subscription channel is closed

func (*FileReader) Close

func (r *FileReader) Close() error

Close closes the underlying storage

func (*FileReader) Read

func (r *FileReader) Read(p []byte) (n int, err error)

type InMemoryBackend

type InMemoryBackend struct {
	Ctx context.Context
	Key string
	// contains filtered or unexported fields
}

InMemoryBackend saves the content into inmemory with the groupcache.

func (*InMemoryBackend) Clean

func (i *InMemoryBackend) Clean() error

Clean performs the purge storage

func (*InMemoryBackend) Close

func (i *InMemoryBackend) Close() error

Close writeh the temp buffer's content to the groupcache

func (*InMemoryBackend) Flush

func (i *InMemoryBackend) Flush() error

Flush do nothing here

func (*InMemoryBackend) GetReader

func (i *InMemoryBackend) GetReader() (io.ReadCloser, error)

GetReader return a reader for the write public response

func (*InMemoryBackend) Length added in v0.3.3

func (i *InMemoryBackend) Length() int

Length return the cache content's length

func (*InMemoryBackend) Write

func (i *InMemoryBackend) Write(p []byte) (n int, err error)

Write adds the response content in the context for the groupcache's setter function.

type NoPreCollectError added in v0.3.3

type NoPreCollectError struct {
	Content string
}

NoPreCollectError is a custom error when there is no precollect content in memory cache.

func (NoPreCollectError) Error added in v0.3.3

func (e NoPreCollectError) Error() string

Error return the error message

type RedisBackend

type RedisBackend struct {
	Ctx context.Context
	Key string
	// contains filtered or unexported fields
}

RedisBackend saves the content into redis

func (*RedisBackend) Clean added in v0.2.0

func (r *RedisBackend) Clean() error

Clean performs the purge storage

func (*RedisBackend) Close added in v0.2.0

func (r *RedisBackend) Close() error

Close writeh the temp buffer's content to the groupcache

func (*RedisBackend) Flush added in v0.2.0

func (r *RedisBackend) Flush() error

Flush do nothing here

func (*RedisBackend) GetReader added in v0.2.0

func (r *RedisBackend) GetReader() (io.ReadCloser, error)

GetReader return a reader for the write public response

func (*RedisBackend) Length added in v0.3.3

func (r *RedisBackend) Length() int

Length return the cache content's length

func (*RedisBackend) Write added in v0.2.0

func (r *RedisBackend) Write(p []byte) (n int, err error)

Write writes the response content in a temp buffer

type Subscription

type Subscription struct {
	// contains filtered or unexported fields
}

Subscription ..

func NewSubscription

func NewSubscription() *Subscription

func (*Subscription) Close

func (s *Subscription) Close()

func (*Subscription) NewSubscriber

func (s *Subscription) NewSubscriber() <-chan int

func (*Subscription) NotifyAll

func (s *Subscription) NotifyAll(newBytes int)

func (*Subscription) RemoveSubscriber

func (s *Subscription) RemoveSubscriber(subscriber <-chan int)

func (*Subscription) WaitAll

func (s *Subscription) WaitAll()

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL