aboutsummaryrefslogtreecommitdiff
path: root/src/dedo.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/dedo.go')
-rw-r--r--src/dedo.go27
1 files changed, 17 insertions, 10 deletions
diff --git a/src/dedo.go b/src/dedo.go
index 9f64693..c0aecaf 100644
--- a/src/dedo.go
+++ b/src/dedo.go
@@ -127,13 +127,20 @@ type ITx interface{
OnCommit(func())
WriteTo(io.Writer) (int64, error)
+}
+
+type SnapshotI interface{
+ Bucket([]byte) *Bucket
+
+ WriteTo(io.Writer) (int64, error)
+ ForEach(func([]byte, *Bucket) error) error
Check() <-chan error
}
type IDedo interface{
Close() error
- View (func(tx ITx) error) error
+ View (func(tx SnapshotI) error) error
Update(func(tx ITx) error) error
Path() string
}
@@ -1743,7 +1750,7 @@ func (m *InMemory) Update(fn func(ITx) error) error {
return err
}
-func (m *InMemory) View(func(ITx) error) error {
+func (m *InMemory) View(func(SnapshotI) error) error {
return nil
}
@@ -2109,7 +2116,7 @@ func (db *DB) Update(fn func(ITx) error) error {
/// the DB.View() method.
///
/// Attempting to manually rollback within the function will cause a panic.
-func (db *DB) View(fn func(ITx) error) error {
+func (db *DB) View(fn func(SnapshotI) error) error {
t, err := db.begin(false)
if err != nil {
return err
@@ -3967,9 +3974,9 @@ func setGetopt(args argsT, w io.Writer) (argsT, bool) {
}
func checkExec(args argsT, db IDedo, _r io.Reader, _w io.Writer) error {
- return db.View(func(tx ITx) error {
+ return db.View(func(snapshot SnapshotI) error {
var errs error
- for err := range tx.Check() {
+ for err := range snapshot.Check() {
errs = g.WrapErrors(errs, err)
}
return errs
@@ -3977,8 +3984,8 @@ func checkExec(args argsT, db IDedo, _r io.Reader, _w io.Writer) error {
}
func getExec(args argsT, db IDedo, r io.Reader, w io.Writer) error {
- return db.View(func(tx ITx) error {
- bucket := tx.Bucket(args.bucket)
+ return db.View(func(snapshot SnapshotI) error {
+ bucket := snapshot.Bucket(args.bucket)
if bucket == nil {
return ErrBucketNotFound
}
@@ -4016,9 +4023,9 @@ func rmExec(args argsT, db IDedo, r io.Reader, w io.Writer) error {
}
func listExec(args argsT, db IDedo, r io.Reader, w io.Writer) error {
- return db.View(func(tx ITx) error {
+ return db.View(func(snapshot SnapshotI) error {
if len(args.bucket) == 0 {
- return tx.ForEach(func(
+ return snapshot.ForEach(func(
name []byte,
bucket *Bucket,
) error {
@@ -4027,7 +4034,7 @@ func listExec(args argsT, db IDedo, r io.Reader, w io.Writer) error {
})
}
- bucket := tx.Bucket(args.bucket)
+ bucket := snapshot.Bucket(args.bucket)
if bucket == nil {
return ErrBucketNotFound
}