boltdb

package
v0.0.0-...-7cabe08 Latest Latest
Warning

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

Go to latest
Published: Oct 26, 2023 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrMultipleEndpointsUnsupported is thrown when multiple endpoints specified for
	// BoltDB. Endpoint has to be a local file path
	ErrMultipleEndpointsUnsupported = errors.New("boltdb supports one endpoint and should be a file path")
	// ErrBoltBucketOptionMissing is thrown when boltBcuket config option is missing
	ErrBoltBucketOptionMissing = errors.New("boltBucket config option missing")
)

Functions

func New

func New(endpoints []string, options *store.Config) (store.Store, error)

New opens a new BoltDB connection to the specified path and bucket

Types

type BoltDB

type BoltDB struct {

	// By default libkv opens and closes the bolt DB connection  for every
	// get/put operation. This allows multiple apps to use a Bolt DB at the
	// same time.
	// PersistConnection flag provides an option to override ths behavior.
	// ie: open the connection in New and use it till Close is called.
	PersistConnection bool
	// contains filtered or unexported fields
}

BoltDB type implements the Store interface

func (*BoltDB) AtomicDelete

func (b *BoltDB) AtomicDelete(key string, previous *store.KVPair) error

AtomicDelete deletes a value at "key" if the key has not been modified in the meantime, throws an error if this is the case

func (*BoltDB) AtomicPut

func (b *BoltDB) AtomicPut(key string, value []byte, previous *store.KVPair) (*store.KVPair, error)

AtomicPut puts a value at "key" if the key has not been modified since the last Put, throws an error if this is the case

func (*BoltDB) Close

func (b *BoltDB) Close()

Close the db connection to the BoltDB

func (*BoltDB) Exists

func (b *BoltDB) Exists(key string) (bool, error)

Exists checks if the key exists inside the store

func (*BoltDB) Get

func (b *BoltDB) Get(key string) (*store.KVPair, error)

Get the value at "key". BoltDB doesn't provide an inbuilt last modified index with every kv pair. Its implemented by by a atomic counter maintained by the libkv and appened to the value passed by the client.

func (*BoltDB) List

func (b *BoltDB) List(keyPrefix string) ([]*store.KVPair, error)

List returns the range of keys starting with the passed in prefix

func (*BoltDB) Put

func (b *BoltDB) Put(key string, value []byte) error

Put the key, value pair. index number metadata is prepended to the value

Jump to

Keyboard shortcuts

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