提交 e539024e 作者: Jeromy

some code cleanup

上级 298305e4
...@@ -68,7 +68,7 @@ func TrickleAppend(base *dag.Node, db *h.DagBuilderHelper) (*dag.Node, error) { ...@@ -68,7 +68,7 @@ func TrickleAppend(base *dag.Node, db *h.DagBuilderHelper) (*dag.Node, error) {
} }
// Get depth of this 'tree' // Get depth of this 'tree'
n, j := trickleDepthInfo(ufsn, db.Maxlinks()) n, layerProgress := trickleDepthInfo(ufsn, db.Maxlinks())
if n == 0 { if n == 0 {
// If direct blocks not filled... // If direct blocks not filled...
err := db.FillNodeLayer(ufsn) err := db.FillNodeLayer(ufsn)
...@@ -84,7 +84,8 @@ func TrickleAppend(base *dag.Node, db *h.DagBuilderHelper) (*dag.Node, error) { ...@@ -84,7 +84,8 @@ func TrickleAppend(base *dag.Node, db *h.DagBuilderHelper) (*dag.Node, error) {
n++ n++
} }
err = appendFillLastChild(ufsn, n-1, j, db) // Last child in this node may not be a full tree, lets file it up
err = appendFillLastChild(ufsn, n-1, layerProgress, db)
if err != nil { if err != nil {
return nil, err return nil, err
} }
...@@ -113,41 +114,44 @@ func TrickleAppend(base *dag.Node, db *h.DagBuilderHelper) (*dag.Node, error) { ...@@ -113,41 +114,44 @@ func TrickleAppend(base *dag.Node, db *h.DagBuilderHelper) (*dag.Node, error) {
return ufsn.GetDagNode() return ufsn.GetDagNode()
} }
// appendFillLastChild will take in an incomplete trickledag node (uncomplete meaning, not full) and
// fill it out to the specified depth with blocks from the given DagBuilderHelper
func appendFillLastChild(ufsn *h.UnixfsNode, depth int, layerFill int, db *h.DagBuilderHelper) error { func appendFillLastChild(ufsn *h.UnixfsNode, depth int, layerFill int, db *h.DagBuilderHelper) error {
if ufsn.NumChildren() > db.Maxlinks() { if ufsn.NumChildren() <= db.Maxlinks() {
// Recursive step, grab last child return nil
last := ufsn.NumChildren() - 1 }
lastChild, err := ufsn.GetChild(last, db.GetDagServ()) // Recursive step, grab last child
if err != nil { last := ufsn.NumChildren() - 1
return err lastChild, err := ufsn.GetChild(last, db.GetDagServ())
} if err != nil {
return err
}
// Fill out last child (may not be full tree) // Fill out last child (may not be full tree)
nchild, err := trickleAppendRec(lastChild, db, depth-1) nchild, err := trickleAppendRec(lastChild, db, depth-1)
if err != nil { if err != nil {
return err return err
} }
// Update changed child in parent node // Update changed child in parent node
ufsn.RemoveChild(last) ufsn.RemoveChild(last)
err = ufsn.AddChild(nchild, db) err = ufsn.AddChild(nchild, db)
if err != nil { if err != nil {
return err return err
} }
// Partially filled depth layer
if layerFill != 0 {
for ; layerFill < layerRepeat && !db.Done(); layerFill++ {
next := h.NewUnixfsNode()
err := fillTrickleRec(db, next, depth)
if err != nil {
return err
}
// Partially filled depth layer err = ufsn.AddChild(next, db)
if layerFill != 0 { if err != nil {
for ; layerFill < layerRepeat && !db.Done(); layerFill++ { return err
next := h.NewUnixfsNode()
err := fillTrickleRec(db, next, depth)
if err != nil {
return err
}
err = ufsn.AddChild(next, db)
if err != nil {
return err
}
} }
} }
} }
...@@ -155,13 +159,14 @@ func appendFillLastChild(ufsn *h.UnixfsNode, depth int, layerFill int, db *h.Dag ...@@ -155,13 +159,14 @@ func appendFillLastChild(ufsn *h.UnixfsNode, depth int, layerFill int, db *h.Dag
return nil return nil
} }
// recursive call for TrickleAppend
func trickleAppendRec(ufsn *h.UnixfsNode, db *h.DagBuilderHelper, depth int) (*h.UnixfsNode, error) { func trickleAppendRec(ufsn *h.UnixfsNode, db *h.DagBuilderHelper, depth int) (*h.UnixfsNode, error) {
if depth == 0 || db.Done() { if depth == 0 || db.Done() {
return ufsn, nil return ufsn, nil
} }
// Get depth of this 'tree' // Get depth of this 'tree'
n, j := trickleDepthInfo(ufsn, db.Maxlinks()) n, layerProgress := trickleDepthInfo(ufsn, db.Maxlinks())
if n == 0 { if n == 0 {
// If direct blocks not filled... // If direct blocks not filled...
err := db.FillNodeLayer(ufsn) err := db.FillNodeLayer(ufsn)
...@@ -176,7 +181,7 @@ func trickleAppendRec(ufsn *h.UnixfsNode, db *h.DagBuilderHelper, depth int) (*h ...@@ -176,7 +181,7 @@ func trickleAppendRec(ufsn *h.UnixfsNode, db *h.DagBuilderHelper, depth int) (*h
return ufsn, nil return ufsn, nil
} }
err := appendFillLastChild(ufsn, n, j, db) err := appendFillLastChild(ufsn, n, layerProgress, db)
if err != nil { if err != nil {
return nil, err return nil, err
} }
...@@ -242,7 +247,7 @@ func verifyTDagRec(nd *dag.Node, depth, direct, layerRepeat int, ds dag.DAGServi ...@@ -242,7 +247,7 @@ func verifyTDagRec(nd *dag.Node, depth, direct, layerRepeat int, ds dag.DAGServi
for i := 0; i < len(nd.Links); i++ { for i := 0; i < len(nd.Links); i++ {
child, err := nd.Links[i].GetNode(ds) child, err := nd.Links[i].GetNode(ds)
if err != nil { if err != nil {
return nil return err
} }
if i < direct { if i < direct {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论