Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
dms3
go-dms3
Commits
b660f937
Commit
b660f937
authored
9 years ago
by
Jeromy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
make callback take a node instead of a key
parent
dd928a2b
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
33 additions
and
28 deletions
+33
-28
core/coreunix/add.go
core/coreunix/add.go
+1
-5
importer/helpers/dagbuilder.go
importer/helpers/dagbuilder.go
+11
-12
importer/helpers/helpers.go
importer/helpers/helpers.go
+2
-2
importer/importer.go
importer/importer.go
+18
-8
unixfs/mod/dagmodifier.go
unixfs/mod/dagmodifier.go
+1
-1
No files found.
core/coreunix/add.go
View file @
b660f937
...
...
@@ -17,7 +17,6 @@ import (
"github.com/ipfs/go-ipfs/pin"
"github.com/ipfs/go-ipfs/thirdparty/eventlog"
unixfs
"github.com/ipfs/go-ipfs/unixfs"
u
"github.com/ipfs/go-ipfs/util"
)
var
log
=
eventlog
.
Logger
(
"coreunix"
)
...
...
@@ -100,10 +99,7 @@ func add(n *core.IpfsNode, reader io.Reader) (*merkledag.Node, error) {
reader
,
n
.
DAG
,
chunk
.
DefaultSplitter
,
func
(
k
u
.
Key
,
root
bool
)
error
{
mp
.
PinWithMode
(
k
,
pin
.
Indirect
)
return
nil
},
importer
.
PinIndirectCB
(
mp
),
)
if
err
!=
nil
{
return
nil
,
err
...
...
This diff is collapsed.
Click to expand it.
importer/helpers/dagbuilder.go
View file @
b660f937
...
...
@@ -3,12 +3,11 @@ package helpers
import
(
dag
"github.com/ipfs/go-ipfs/merkledag"
"github.com/ipfs/go-ipfs/pin"
u
"github.com/ipfs/go-ipfs/util"
)
type
Block
CB
func
(
u
.
Key
,
bool
)
error
type
Node
CB
func
(
node
*
dag
.
Node
,
root
bool
)
error
var
nilFunc
Block
CB
=
func
(
_
u
.
Key
,
_
bool
)
error
{
return
nil
}
var
nilFunc
Node
CB
=
func
(
_
*
dag
.
Node
,
_
bool
)
error
{
return
nil
}
// DagBuilderHelper wraps together a bunch of objects needed to
// efficiently create unixfs dag trees
...
...
@@ -18,7 +17,7 @@ type DagBuilderHelper struct {
in
<-
chan
[]
byte
nextData
[]
byte
// the next item to return.
maxlinks
int
b
cb
Block
CB
n
cb
Node
CB
}
type
DagBuilderParams
struct
{
...
...
@@ -29,22 +28,22 @@ type DagBuilderParams struct {
Dagserv
dag
.
DAGService
// Callback for each block added
BlockCB
Block
CB
NodeCB
Node
CB
}
// Generate a new DagBuilderHelper from the given params, using 'in' as a
// data source
func
(
dbp
*
DagBuilderParams
)
New
(
in
<-
chan
[]
byte
)
*
DagBuilderHelper
{
b
cb
:=
dbp
.
Block
CB
if
b
cb
==
nil
{
b
cb
=
nilFunc
n
cb
:=
dbp
.
Node
CB
if
n
cb
==
nil
{
n
cb
=
nilFunc
}
return
&
DagBuilderHelper
{
dserv
:
dbp
.
Dagserv
,
in
:
in
,
maxlinks
:
dbp
.
Maxlinks
,
b
cb
:
b
cb
,
n
cb
:
n
cb
,
}
}
...
...
@@ -136,13 +135,13 @@ func (db *DagBuilderHelper) Add(node *UnixfsNode) (*dag.Node, error) {
return
nil
,
err
}
key
,
err
:
=
db
.
dserv
.
Add
(
dn
)
_
,
err
=
db
.
dserv
.
Add
(
dn
)
if
err
!=
nil
{
return
nil
,
err
}
//
block
callback
err
=
db
.
b
cb
(
key
,
true
)
//
node
callback
err
=
db
.
n
cb
(
dn
,
true
)
if
err
!=
nil
{
return
nil
,
err
}
...
...
This diff is collapsed.
Click to expand it.
importer/helpers/helpers.go
View file @
b660f937
...
...
@@ -107,13 +107,13 @@ func (n *UnixfsNode) AddChild(child *UnixfsNode, db *DagBuilderHelper) error {
return
err
}
childkey
,
err
:
=
db
.
dserv
.
Add
(
childnode
)
_
,
err
=
db
.
dserv
.
Add
(
childnode
)
if
err
!=
nil
{
return
err
}
// Pin the child node indirectly
err
=
db
.
b
cb
(
child
key
,
false
)
err
=
db
.
n
cb
(
child
node
,
false
)
if
err
!=
nil
{
return
err
}
...
...
This diff is collapsed.
Click to expand it.
importer/importer.go
View file @
b660f937
...
...
@@ -39,34 +39,39 @@ func BuildDagFromFile(fpath string, ds dag.DAGService, mp pin.ManualPinner) (*da
return
BuildDagFromReader
(
f
,
ds
,
chunk
.
DefaultSplitter
,
BasicPinnerCB
(
mp
))
}
func
BuildDagFromReader
(
r
io
.
Reader
,
ds
dag
.
DAGService
,
spl
chunk
.
BlockSplitter
,
b
cb
h
.
Block
CB
)
(
*
dag
.
Node
,
error
)
{
func
BuildDagFromReader
(
r
io
.
Reader
,
ds
dag
.
DAGService
,
spl
chunk
.
BlockSplitter
,
n
cb
h
.
Node
CB
)
(
*
dag
.
Node
,
error
)
{
// Start the splitter
blkch
:=
spl
.
Split
(
r
)
dbp
:=
h
.
DagBuilderParams
{
Dagserv
:
ds
,
Maxlinks
:
h
.
DefaultLinksPerBlock
,
Block
CB
:
b
cb
,
Node
CB
:
n
cb
,
}
return
bal
.
BalancedLayout
(
dbp
.
New
(
blkch
))
}
func
BuildTrickleDagFromReader
(
r
io
.
Reader
,
ds
dag
.
DAGService
,
spl
chunk
.
BlockSplitter
,
b
cb
h
.
Block
CB
)
(
*
dag
.
Node
,
error
)
{
func
BuildTrickleDagFromReader
(
r
io
.
Reader
,
ds
dag
.
DAGService
,
spl
chunk
.
BlockSplitter
,
n
cb
h
.
Node
CB
)
(
*
dag
.
Node
,
error
)
{
// Start the splitter
blkch
:=
spl
.
Split
(
r
)
dbp
:=
h
.
DagBuilderParams
{
Dagserv
:
ds
,
Maxlinks
:
h
.
DefaultLinksPerBlock
,
Block
CB
:
b
cb
,
Node
CB
:
n
cb
,
}
return
trickle
.
TrickleLayout
(
dbp
.
New
(
blkch
))
}
func
BasicPinnerCB
(
p
pin
.
ManualPinner
)
h
.
BlockCB
{
return
func
(
k
u
.
Key
,
root
bool
)
error
{
func
BasicPinnerCB
(
p
pin
.
ManualPinner
)
h
.
NodeCB
{
return
func
(
n
*
dag
.
Node
,
root
bool
)
error
{
k
,
err
:=
n
.
Key
()
if
err
!=
nil
{
return
err
}
if
root
{
p
.
PinWithMode
(
k
,
pin
.
Recursive
)
return
p
.
Flush
()
...
...
@@ -77,8 +82,13 @@ func BasicPinnerCB(p pin.ManualPinner) h.BlockCB {
}
}
func
PinIndirectCB
(
p
pin
.
ManualPinner
)
h
.
BlockCB
{
return
func
(
k
u
.
Key
,
root
bool
)
error
{
func
PinIndirectCB
(
p
pin
.
ManualPinner
)
h
.
NodeCB
{
return
func
(
n
*
dag
.
Node
,
root
bool
)
error
{
k
,
err
:=
n
.
Key
()
if
err
!=
nil
{
return
err
}
p
.
PinWithMode
(
k
,
pin
.
Indirect
)
return
nil
}
...
...
This diff is collapsed.
Click to expand it.
unixfs/mod/dagmodifier.go
View file @
b660f937
...
...
@@ -309,7 +309,7 @@ func (dm *DagModifier) appendData(node *mdag.Node, blks <-chan []byte) (*mdag.No
dbp
:=
&
help
.
DagBuilderParams
{
Dagserv
:
dm
.
dagserv
,
Maxlinks
:
help
.
DefaultLinksPerBlock
,
Block
CB
:
imp
.
BasicPinnerCB
(
dm
.
mp
),
Node
CB
:
imp
.
BasicPinnerCB
(
dm
.
mp
),
}
return
trickle
.
TrickleAppend
(
node
,
dbp
.
New
(
blks
))
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment