1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-09-10 05:52:20 +08:00

use batching transaction interface from datastore

License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
This commit is contained in:
Jeromy
2015-06-26 09:44:00 -07:00
parent f6f9cae4e4
commit 137c0ac4ac
39 changed files with 857 additions and 1546 deletions

View File

@ -36,7 +36,17 @@ func TrickleLayout(db *h.DagBuilderHelper) (*dag.Node, error) {
}
}
return db.Add(root)
out, err := db.Add(root)
if err != nil {
return nil, err
}
err = db.Close()
if err != nil {
return nil, err
}
return out, nil
}
func fillTrickleRec(db *h.DagBuilderHelper, node *h.UnixfsNode, depth int) error {
@ -64,7 +74,16 @@ func fillTrickleRec(db *h.DagBuilderHelper, node *h.UnixfsNode, depth int) error
}
// TrickleAppend appends the data in `db` to the dag, using the Trickledag format
func TrickleAppend(base *dag.Node, db *h.DagBuilderHelper) (*dag.Node, error) {
func TrickleAppend(base *dag.Node, db *h.DagBuilderHelper) (out *dag.Node, err_out error) {
defer func() {
if err_out == nil {
err := db.Close()
if err != nil {
err_out = err
}
}
}()
// Convert to unixfs node for working with easily
ufsn, err := h.NewUnixfsNodeFromDag(base)
if err != nil {