mirror of
https://github.com/vocdoni/arbo.git
synced 2026-01-09 13:57:54 -05:00
use io.Writer interface for Dump methods
Signed-off-by: p4u <pau@dabax.net>
This commit is contained in:
11
tree.go
11
tree.go
@@ -1327,7 +1327,7 @@ func (t *Tree) Dump(fromRoot []byte) ([]byte, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// DumpWriter exports all the Tree leafs writing the bytes in the given Writer
|
// DumpWriter exports all the Tree leafs writing the bytes in the given Writer
|
||||||
func (t *Tree) DumpWriter(fromRoot []byte, w *bufio.Writer) error {
|
func (t *Tree) DumpWriter(fromRoot []byte, w io.Writer) error {
|
||||||
_, err := t.dump(fromRoot, w)
|
_, err := t.dump(fromRoot, w)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -1340,7 +1340,7 @@ func (t *Tree) DumpWriter(fromRoot []byte, w *bufio.Writer) error {
|
|||||||
// [ 1 byte | 1 byte | S bytes | len(v) bytes ]
|
// [ 1 byte | 1 byte | S bytes | len(v) bytes ]
|
||||||
// [ len(k) | len(v) | key | value ]
|
// [ len(k) | len(v) | key | value ]
|
||||||
// Where S is the size of the output of the hash function used for the Tree.
|
// Where S is the size of the output of the hash function used for the Tree.
|
||||||
func (t *Tree) dump(fromRoot []byte, w *bufio.Writer) ([]byte, error) {
|
func (t *Tree) dump(fromRoot []byte, w io.Writer) ([]byte, error) {
|
||||||
// allow to define which root to use
|
// allow to define which root to use
|
||||||
if fromRoot == nil {
|
if fromRoot == nil {
|
||||||
var err error
|
var err error
|
||||||
@@ -1385,11 +1385,6 @@ func (t *Tree) dump(fromRoot []byte, w *bufio.Writer) ([]byte, error) {
|
|||||||
callbackErr = fmt.Errorf("dump: w.Write n!=len(kv), %s", err)
|
callbackErr = fmt.Errorf("dump: w.Write n!=len(kv), %s", err)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
err = w.Flush()
|
|
||||||
if err != nil {
|
|
||||||
callbackErr = fmt.Errorf("dump: w.Flush, %s", err)
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
})
|
})
|
||||||
@@ -1409,7 +1404,7 @@ func (t *Tree) ImportDump(b []byte) error {
|
|||||||
|
|
||||||
// ImportDumpReader imports the leafs (that have been exported with the Dump
|
// ImportDumpReader imports the leafs (that have been exported with the Dump
|
||||||
// method) in the Tree, reading them from the given reader.
|
// method) in the Tree, reading them from the given reader.
|
||||||
func (t *Tree) ImportDumpReader(r *bufio.Reader) error {
|
func (t *Tree) ImportDumpReader(r io.Reader) error {
|
||||||
if !t.editable() {
|
if !t.editable() {
|
||||||
return ErrSnapshotNotEditable
|
return ErrSnapshotNotEditable
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package arbo
|
package arbo
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bufio"
|
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"math"
|
"math"
|
||||||
"math/big"
|
"math/big"
|
||||||
@@ -492,8 +491,7 @@ func testDumpAndImportDump(t *testing.T, inFile bool) {
|
|||||||
if inFile {
|
if inFile {
|
||||||
f, err := os.Create(fileName)
|
f, err := os.Create(fileName)
|
||||||
c.Assert(err, qt.IsNil)
|
c.Assert(err, qt.IsNil)
|
||||||
w := bufio.NewWriter(f)
|
err = tree1.DumpWriter(nil, f)
|
||||||
err = tree1.DumpWriter(nil, w)
|
|
||||||
c.Assert(err, qt.IsNil)
|
c.Assert(err, qt.IsNil)
|
||||||
} else {
|
} else {
|
||||||
e, err = tree1.Dump(nil)
|
e, err = tree1.Dump(nil)
|
||||||
@@ -510,8 +508,7 @@ func testDumpAndImportDump(t *testing.T, inFile bool) {
|
|||||||
if inFile {
|
if inFile {
|
||||||
f, err := os.Open(filepath.Clean(fileName))
|
f, err := os.Open(filepath.Clean(fileName))
|
||||||
c.Assert(err, qt.IsNil)
|
c.Assert(err, qt.IsNil)
|
||||||
r := bufio.NewReader(f)
|
err = tree2.ImportDumpReader(f)
|
||||||
err = tree2.ImportDumpReader(r)
|
|
||||||
c.Assert(err, qt.IsNil)
|
c.Assert(err, qt.IsNil)
|
||||||
} else {
|
} else {
|
||||||
err = tree2.ImportDump(e)
|
err = tree2.ImportDump(e)
|
||||||
|
|||||||
Reference in New Issue
Block a user