store

package
Version: v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Apr 24, 2020 License: MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var UnknownIndex = errors.New(`index does not exist`)

Functions

func MakeEndpoints

func MakeEndpoints(host string, registry Registry, logger log.Logger)

Types

type Builder

type Builder func(name string, keyEncoder encoding.Builder, valEncoder encoding.Builder, options ...Options) (Store, error)

type Err

type Err struct {
	Err string `json:"error"`
}

type Index

type Index interface {
	Name() string
	Write(key, value interface{}) error
	Delete(val, value interface{}) error
	Read(index interface{}) ([]interface{}, error)
}

func NewStringHashIndex

func NewStringHashIndex(name string, mapper KeyMapper) Index

func NewUuidHashIndex

func NewUuidHashIndex(name string, mapper func(key, val interface{}) (idx uuid.UUID)) Index

type IndexedStore

type IndexedStore interface {
	Store
	GetIndex(ctx context.Context, name string) (Index, error)
	GetIndexedRecords(ctx context.Context, index string, key interface{}) ([]interface{}, error)
}

func NewIndexedStore

func NewIndexedStore(name string, keyEncoder, valEncoder encoding.Encoder, indexes []Index, options ...Options) (IndexedStore, error)

type Iterator

type Iterator interface {
	SeekToFirst()
	SeekToLast()
	Seek(key interface{}) error
	Next()
	Prev()
	Close()
	Key() (interface{}, error)
	Value() (interface{}, error)
	Valid() bool
	Error() error
}

type KeyMapper

type KeyMapper func(key, val interface{}) (idx string)

type Meta

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

func NewMata

func NewMata(c sarama.Client, group string) *Meta

func (*Meta) GetMeta

func (m *Meta) GetMeta(tp string) string

func (*Meta) Refresh

func (m *Meta) Refresh()

type MockRecord

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

type MockStore

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

func (*MockStore) Backend

func (s *MockStore) Backend() backend.Backend

func (*MockStore) Delete

func (s *MockStore) Delete(ctx context.Context, key interface{}) error

func (*MockStore) Get

func (s *MockStore) Get(ctx context.Context, key interface{}) (value interface{}, err error)

func (*MockStore) GetAll

func (*MockStore) GetAll(ctx context.Context) (Iterator, error)

func (*MockStore) GetRange

func (*MockStore) GetRange(ctx context.Context, fromKey interface{}, toKey interface{}) (map[interface{}]interface{}, error)

func (*MockStore) KeyEncoder

func (s *MockStore) KeyEncoder() encoding.Encoder

func (*MockStore) Name

func (s *MockStore) Name() string

func (*MockStore) Set

func (s *MockStore) Set(ctx context.Context, key interface{}, value interface{}, expiry time.Duration) error

func (*MockStore) String

func (s *MockStore) String() string

func (*MockStore) ValEncoder

func (s *MockStore) ValEncoder() encoding.Encoder

type Options

type Options func(config *storeOptions)

func Buffered

func Buffered(size int) Options

func ChangelogEnabled

func ChangelogEnabled() Options

func Compacated

func Compacated() Options

func Expire

func Expire(d time.Duration) Options

func WithBackend

func WithBackend(backend backend.Backend) Options

func WithBackendBuilder

func WithBackendBuilder(builder backend.Builder) Options

func WithChangelog

func WithChangelog(changelog changelog.Changelog) Options

func WithLogger

func WithLogger(logger log.Logger) Options

type RecoverableStore

type RecoverableStore interface {
	Store
	Recover(ctx context.Context) error
}

type Registry

type Registry interface {
	Register(store Store)
	New(name string, keyEncoder encoding.Builder, valEncoder encoding.Builder, options ...Options) Store
	Store(name string) (Store, error)
	List() []string
}

func NewRegistry

func NewRegistry(config *RegistryConfig) Registry

type RegistryConfig

type RegistryConfig struct {
	Host        string
	HttpEnabled bool

	StoreBuilder      Builder
	StateStoreBuilder StateStoreBuilder
	Logger            log.Logger
	MetricsReporter   metrics.Reporter
	// contains filtered or unexported fields
}

type StateStore

type StateStore interface {
	Name() string
	Set(key interface{}, value interface{}) error
	Get(key interface{}) (value interface{}, err error)
	GetAll() ([]*data.Record, error)
}

func NewStateStore

func NewStateStore(name string, keyEncoder encoding.Encoder, valEncoder encoding.Encoder, options ...Options) StateStore

type StateStoreBuilder

type StateStoreBuilder func(name string, keyEncoder encoding.Builder, valEncoder encoding.Builder, options ...Options) StateStore

type Store

type Store interface {
	Name() string
	Backend() backend.Backend
	KeyEncoder() encoding.Encoder
	ValEncoder() encoding.Encoder
	Set(ctx context.Context, key interface{}, value interface{}, expiry time.Duration) error
	Get(ctx context.Context, key interface{}) (value interface{}, err error)
	GetRange(ctx context.Context, fromKey interface{}, toKey interface{}) (map[interface{}]interface{}, error)
	GetAll(ctx context.Context) (Iterator, error)
	Delete(ctx context.Context, key interface{}) error
	String() string
}

func NewMockStore

func NewMockStore(name string, kEncode encoding.Encoder, vEncoder encoding.Encoder, backend backend.Backend, records ...MockRecord) Store

func NewStore

func NewStore(name string, keyEncoder encoding.Encoder, valEncoder encoding.Encoder, options ...Options) (Store, error)

Jump to

Keyboard shortcuts

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