go-ethereum: github.com/axiomzen/go-ethereum/ethdb/memorydb Index | Files

package memorydb

import "github.com/axiomzen/go-ethereum/ethdb/memorydb"

Package memorydb implements the key-value database layer based on memory maps.

Index

Package Files

memorydb.go

type Database Uses

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

Database is an ephemeral key-value store. Apart from basic data storage functionality it also supports batch writes and iterating over the keyspace in binary-alphabetical order.

func New Uses

func New() *Database

New returns a wrapped map with all the required database interface methods implemented.

func NewWithCap Uses

func NewWithCap(size int) *Database

NewWithCap returns a wrapped map pre-allocated to the provided capcity with all the required database interface methods implemented.

func (*Database) Close Uses

func (db *Database) Close() error

Close deallocates the internal map and ensures any consecutive data access op failes with an error.

func (*Database) Compact Uses

func (db *Database) Compact(start []byte, limit []byte) error

Compact is not supported on a memory database.

func (*Database) Delete Uses

func (db *Database) Delete(key []byte) error

Delete removes the key from the key-value store.

func (*Database) Get Uses

func (db *Database) Get(key []byte) ([]byte, error)

Get retrieves the given key if it's present in the key-value store.

func (*Database) Has Uses

func (db *Database) Has(key []byte) (bool, error)

Has retrieves if a key is present in the key-value store.

func (*Database) Len Uses

func (db *Database) Len() int

Len returns the number of entries currently present in the memory database.

Note, this method is only used for testing (i.e. not public in general) and does not have explicit checks for closed-ness to allow simpler testing code.

func (*Database) NewBatch Uses

func (db *Database) NewBatch() ethdb.Batch

NewBatch creates a write-only key-value store that buffers changes to its host database until a final write is called.

func (*Database) NewIterator Uses

func (db *Database) NewIterator() ethdb.Iterator

NewIterator creates a binary-alphabetical iterator over the entire keyspace contained within the memory database.

func (*Database) NewIteratorWithPrefix Uses

func (db *Database) NewIteratorWithPrefix(prefix []byte) ethdb.Iterator

NewIteratorWithPrefix creates a binary-alphabetical iterator over a subset of database content with a particular key prefix.

func (*Database) NewIteratorWithStart Uses

func (db *Database) NewIteratorWithStart(start []byte) ethdb.Iterator

NewIteratorWithStart creates a binary-alphabetical iterator over a subset of database content starting at a particular initial key (or after, if it does not exist).

func (*Database) Put Uses

func (db *Database) Put(key []byte, value []byte) error

Put inserts the given value into the key-value store.

func (*Database) Stat Uses

func (db *Database) Stat(property string) (string, error)

Stat returns a particular internal stat of the database.

Package memorydb imports 6 packages (graph). Updated 2019-09-29. Refresh now. Tools for package owners.