dir

package
v3.2.10+incompatible Latest Latest
Warning

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

Go to latest
Published: Sep 11, 2019 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Overview

dir package implements backend.Backend interface using the filesystem. The filesystem needs to be POSIX compliant and support BSD locks (flock).

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetName

func GetName() string

GetName returns the name of this backend.

func New

func New(params backend.Params) (backend.Backend, error)

New creates a new instance of a directory based backend that implements backend.Backend.

Types

type Backend

type Backend struct {
	// InternalClock is a test-friendly source of current time
	InternalClock clockwork.Clock
	// contains filtered or unexported fields
}

Backend implements backend.Backend interface using a regular POSIX-style filesystem

func (*Backend) AcquireLock

func (bk *Backend) AcquireLock(token string, ttl time.Duration) (err error)

AcquireLock grabs a lock that will be released automatically in TTL.

func (*Backend) Clock

func (b *Backend) Clock() clockwork.Clock

Clock returns the clock used by this backend.

func (*Backend) Close

func (bk *Backend) Close() error

Close releases the resources taken up the backend.

func (*Backend) CompareAndSwapVal

func (bk *Backend) CompareAndSwapVal(bucket []string, key string, val []byte, prevVal []byte, ttl time.Duration) error

CompareAndSwapVal compares and swap values in atomic operation

func (*Backend) CreateVal

func (bk *Backend) CreateVal(bucket []string, key string, val []byte, ttl time.Duration) error

CreateVal creates a key/value pair with the given TTL in the bucket. If the key already exists in the bucket, trace.AlreadyExists is returned.

func (*Backend) DeleteBucket

func (bk *Backend) DeleteBucket(parent []string, bucket string) error

DeleteBucket deletes the bucket by a given path.

func (*Backend) DeleteKey

func (bk *Backend) DeleteKey(bucket []string, key string) error

DeleteKey deletes a key in a bucket.

func (*Backend) GetItems

func (bk *Backend) GetItems(bucket []string, opts ...backend.OpOption) ([]backend.Item, error)

GetItems returns all items (key/value pairs) in a given bucket.

func (*Backend) GetKeys

func (bk *Backend) GetKeys(bucket []string, opts ...backend.OpOption) ([]string, error)

GetKeys returns a list of keys for a given bucket.

func (*Backend) GetVal

func (bk *Backend) GetVal(bucket []string, key string) ([]byte, error)

GetVal return a value for a given key in the bucket

func (*Backend) ReleaseLock

func (bk *Backend) ReleaseLock(token string) (err error)

ReleaseLock forces lock release before TTL.

func (*Backend) UpsertItems

func (bk *Backend) UpsertItems(bucket []string, newItems []backend.Item) error

UpsertItems inserts (or updates if it already exists) all passed in backend.Items with the given TTL.

func (*Backend) UpsertVal

func (bk *Backend) UpsertVal(bucket []string, key string, val []byte, ttl time.Duration) error

UpsertVal inserts (or updates if it already exists) the value for a key with the given TTL.

Jump to

Keyboard shortcuts

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