родител
053e178942
ревизия
0289c414fd
@ -0,0 +1 @@ |
||||
0.0.0: Qmc8avR3R61qdrX8inmkKqnWtUQHQaN2XR6idG4wpYgYLf |
@ -1,63 +1,62 @@ |
||||
package main |
||||
|
||||
|
||||
import "log" |
||||
import "io/ioutil" |
||||
import "github.com/dgraph-io/badger" |
||||
|
||||
type KeyValueStore struct { |
||||
db *badger.DB |
||||
db *badger.DB |
||||
} |
||||
|
||||
func NewKeyValueStore() *KeyValueStore { |
||||
kv := new(KeyValueStore) |
||||
kv.init() |
||||
return kv |
||||
kv := new(KeyValueStore) |
||||
kv.init() |
||||
return kv |
||||
} |
||||
|
||||
func (kv *KeyValueStore) init() { |
||||
dir, err := ioutil.TempDir("", "badger") |
||||
if err != nil { |
||||
log.Fatal(err) |
||||
} |
||||
|
||||
opts := badger.DefaultOptions |
||||
opts.Dir = dir |
||||
opts.ValueDir = dir |
||||
kv.db, err = badger.Open(opts) |
||||
if err != nil { |
||||
log.Fatal(err) |
||||
} |
||||
dir, err := ioutil.TempDir("", "badger") |
||||
if err != nil { |
||||
log.Fatal(err) |
||||
} |
||||
|
||||
opts := badger.DefaultOptions |
||||
opts.Dir = dir |
||||
opts.ValueDir = dir |
||||
kv.db, err = badger.Open(opts) |
||||
if err != nil { |
||||
log.Fatal(err) |
||||
} |
||||
} |
||||
|
||||
func (kv *KeyValueStore) Close() { |
||||
kv.db.Close() |
||||
kv.db.Close() |
||||
} |
||||
|
||||
func (kv *KeyValueStore) Put(key *string, value *string) error { |
||||
txn := kv.db.NewTransaction(true) // Read-write txn
|
||||
err := txn.Set([]byte(*key), []byte(*value)) |
||||
if err != nil { |
||||
log.Fatal(err) |
||||
} |
||||
err = txn.Commit(nil) |
||||
if err != nil { |
||||
log.Fatal(err) |
||||
} |
||||
return nil |
||||
txn := kv.db.NewTransaction(true) // Read-write txn
|
||||
err := txn.Set([]byte(*key), []byte(*value)) |
||||
if err != nil { |
||||
log.Fatal(err) |
||||
} |
||||
err = txn.Commit(nil) |
||||
if err != nil { |
||||
log.Fatal(err) |
||||
} |
||||
return nil |
||||
} |
||||
|
||||
func (kv *KeyValueStore) Get(key *string) (*string, error) { |
||||
txn := kv.db.NewTransaction(true) // Read-write txn
|
||||
item, err := txn.Get([]byte(*key)) |
||||
if err != nil { |
||||
return nil, err |
||||
} |
||||
|
||||
val, err := item.ValueCopy(nil) |
||||
if err != nil { |
||||
return nil, err |
||||
} |
||||
s := string(val) |
||||
return &s, nil |
||||
txn := kv.db.NewTransaction(true) // Read-write txn
|
||||
item, err := txn.Get([]byte(*key)) |
||||
if err != nil { |
||||
return nil, err |
||||
} |
||||
|
||||
val, err := item.ValueCopy(nil) |
||||
if err != nil { |
||||
return nil, err |
||||
} |
||||
s := string(val) |
||||
return &s, nil |
||||
} |
||||
|
@ -0,0 +1,8 @@ |
||||
package main |
||||
|
||||
import log "github.com/sirupsen/logrus" |
||||
|
||||
// wtf go stdlib doesn't have a Logger interface?!
|
||||
type Logger interface { |
||||
log.FieldLogger |
||||
} |
@ -0,0 +1,12 @@ |
||||
{ |
||||
"author": "sneak", |
||||
"bugs": {}, |
||||
"gx": {}, |
||||
"gxVersion": "0.12.1", |
||||
"language": "go", |
||||
"license": "", |
||||
"name": "steem-block-db", |
||||
"releaseCmd": "git commit -a -m \"gx publish $VERSION\"", |
||||
"version": "0.0.0" |
||||
} |
||||
|
Зареждане…
Reference in new issue