Skip to content

Commit d563763

Browse files
committed
make callback take a node instead of a key
1 parent 8dae027 commit d563763

File tree

5 files changed

+33
-28
lines changed

5 files changed

+33
-28
lines changed

core/coreunix/add.go

+1-5
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import (
1717
"github.com/ipfs/go-ipfs/pin"
1818
"github.com/ipfs/go-ipfs/thirdparty/eventlog"
1919
unixfs "github.com/ipfs/go-ipfs/unixfs"
20-
u "github.com/ipfs/go-ipfs/util"
2120
)
2221

2322
var log = eventlog.Logger("coreunix")
@@ -100,10 +99,7 @@ func add(n *core.IpfsNode, reader io.Reader) (*merkledag.Node, error) {
10099
reader,
101100
n.DAG,
102101
chunk.DefaultSplitter,
103-
func(k u.Key, root bool) error {
104-
mp.PinWithMode(k, pin.Indirect)
105-
return nil
106-
},
102+
importer.PinIndirectCB(mp),
107103
)
108104
if err != nil {
109105
return nil, err

importer/helpers/dagbuilder.go

+11-12
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,11 @@ package helpers
33
import (
44
dag "github.com/ipfs/go-ipfs/merkledag"
55
"github.com/ipfs/go-ipfs/pin"
6-
u "github.com/ipfs/go-ipfs/util"
76
)
87

9-
type BlockCB func(u.Key, bool) error
8+
type NodeCB func(node *dag.Node, root bool) error
109

11-
var nilFunc BlockCB = func(_ u.Key, _ bool) error { return nil }
10+
var nilFunc NodeCB = func(_ *dag.Node, _ bool) error { return nil }
1211

1312
// DagBuilderHelper wraps together a bunch of objects needed to
1413
// efficiently create unixfs dag trees
@@ -18,7 +17,7 @@ type DagBuilderHelper struct {
1817
in <-chan []byte
1918
nextData []byte // the next item to return.
2019
maxlinks int
21-
bcb BlockCB
20+
ncb NodeCB
2221
}
2322

2423
type DagBuilderParams struct {
@@ -29,22 +28,22 @@ type DagBuilderParams struct {
2928
Dagserv dag.DAGService
3029

3130
// Callback for each block added
32-
BlockCB BlockCB
31+
NodeCB NodeCB
3332
}
3433

3534
// Generate a new DagBuilderHelper from the given params, using 'in' as a
3635
// data source
3736
func (dbp *DagBuilderParams) New(in <-chan []byte) *DagBuilderHelper {
38-
bcb := dbp.BlockCB
39-
if bcb == nil {
40-
bcb = nilFunc
37+
ncb := dbp.NodeCB
38+
if ncb == nil {
39+
ncb = nilFunc
4140
}
4241

4342
return &DagBuilderHelper{
4443
dserv: dbp.Dagserv,
4544
in: in,
4645
maxlinks: dbp.Maxlinks,
47-
bcb: bcb,
46+
ncb: ncb,
4847
}
4948
}
5049

@@ -136,13 +135,13 @@ func (db *DagBuilderHelper) Add(node *UnixfsNode) (*dag.Node, error) {
136135
return nil, err
137136
}
138137

139-
key, err := db.dserv.Add(dn)
138+
_, err = db.dserv.Add(dn)
140139
if err != nil {
141140
return nil, err
142141
}
143142

144-
// block callback
145-
err = db.bcb(key, true)
143+
// node callback
144+
err = db.ncb(dn, true)
146145
if err != nil {
147146
return nil, err
148147
}

importer/helpers/helpers.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -107,13 +107,13 @@ func (n *UnixfsNode) AddChild(child *UnixfsNode, db *DagBuilderHelper) error {
107107
return err
108108
}
109109

110-
childkey, err := db.dserv.Add(childnode)
110+
_, err = db.dserv.Add(childnode)
111111
if err != nil {
112112
return err
113113
}
114114

115115
// Pin the child node indirectly
116-
err = db.bcb(childkey, false)
116+
err = db.ncb(childnode, false)
117117
if err != nil {
118118
return err
119119
}

importer/importer.go

+18-8
Original file line numberDiff line numberDiff line change
@@ -39,34 +39,39 @@ func BuildDagFromFile(fpath string, ds dag.DAGService, mp pin.ManualPinner) (*da
3939
return BuildDagFromReader(f, ds, chunk.DefaultSplitter, BasicPinnerCB(mp))
4040
}
4141

42-
func BuildDagFromReader(r io.Reader, ds dag.DAGService, spl chunk.BlockSplitter, bcb h.BlockCB) (*dag.Node, error) {
42+
func BuildDagFromReader(r io.Reader, ds dag.DAGService, spl chunk.BlockSplitter, ncb h.NodeCB) (*dag.Node, error) {
4343
// Start the splitter
4444
blkch := spl.Split(r)
4545

4646
dbp := h.DagBuilderParams{
4747
Dagserv: ds,
4848
Maxlinks: h.DefaultLinksPerBlock,
49-
BlockCB: bcb,
49+
NodeCB: ncb,
5050
}
5151

5252
return bal.BalancedLayout(dbp.New(blkch))
5353
}
5454

55-
func BuildTrickleDagFromReader(r io.Reader, ds dag.DAGService, spl chunk.BlockSplitter, bcb h.BlockCB) (*dag.Node, error) {
55+
func BuildTrickleDagFromReader(r io.Reader, ds dag.DAGService, spl chunk.BlockSplitter, ncb h.NodeCB) (*dag.Node, error) {
5656
// Start the splitter
5757
blkch := spl.Split(r)
5858

5959
dbp := h.DagBuilderParams{
6060
Dagserv: ds,
6161
Maxlinks: h.DefaultLinksPerBlock,
62-
BlockCB: bcb,
62+
NodeCB: ncb,
6363
}
6464

6565
return trickle.TrickleLayout(dbp.New(blkch))
6666
}
6767

68-
func BasicPinnerCB(p pin.ManualPinner) h.BlockCB {
69-
return func(k u.Key, root bool) error {
68+
func BasicPinnerCB(p pin.ManualPinner) h.NodeCB {
69+
return func(n *dag.Node, root bool) error {
70+
k, err := n.Key()
71+
if err != nil {
72+
return err
73+
}
74+
7075
if root {
7176
p.PinWithMode(k, pin.Recursive)
7277
return p.Flush()
@@ -77,8 +82,13 @@ func BasicPinnerCB(p pin.ManualPinner) h.BlockCB {
7782
}
7883
}
7984

80-
func PinIndirectCB(p pin.ManualPinner) h.BlockCB {
81-
return func(k u.Key, root bool) error {
85+
func PinIndirectCB(p pin.ManualPinner) h.NodeCB {
86+
return func(n *dag.Node, root bool) error {
87+
k, err := n.Key()
88+
if err != nil {
89+
return err
90+
}
91+
8292
p.PinWithMode(k, pin.Indirect)
8393
return nil
8494
}

unixfs/mod/dagmodifier.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ func (dm *DagModifier) appendData(node *mdag.Node, blks <-chan []byte) (*mdag.No
309309
dbp := &help.DagBuilderParams{
310310
Dagserv: dm.dagserv,
311311
Maxlinks: help.DefaultLinksPerBlock,
312-
BlockCB: imp.BasicPinnerCB(dm.mp),
312+
NodeCB: imp.BasicPinnerCB(dm.mp),
313313
}
314314

315315
return trickle.TrickleAppend(node, dbp.New(blks))

0 commit comments

Comments
 (0)