Commit 07869d6a authored by Steven Allen's avatar Steven Allen

move GetLinks to daghelpers

Keep merkledag clean.
parent f2fc6cec
...@@ -6,6 +6,23 @@ import ( ...@@ -6,6 +6,23 @@ import (
cid "github.com/ipfs/go-cid" cid "github.com/ipfs/go-cid"
) )
// GetLinks returns the CIDs of the children of the given node. Prefer this
// method over looking up the node itself and calling `Links()` on it as this
// method may be able to use a link cache.
func GetLinks(ctx context.Context, ng NodeGetter, c *cid.Cid) ([]*Link, error) {
if c.Type() == cid.Raw {
return nil, nil
}
if gl, ok := ng.(LinkGetter); ok {
return gl.GetLinks(ctx, c)
}
node, err := ng.Get(ctx, c)
if err != nil {
return nil, err
}
return node.Links(), nil
}
// GetDAG will fill out all of the links of the given Node. // GetDAG will fill out all of the links of the given Node.
// It returns an array of NodePromise with the linked nodes all in the proper // It returns an array of NodePromise with the linked nodes all in the proper
// order. // order.
......
...@@ -44,23 +44,6 @@ type LinkGetter interface { ...@@ -44,23 +44,6 @@ type LinkGetter interface {
GetLinks(ctx context.Context, nd *cid.Cid) ([]*Link, error) GetLinks(ctx context.Context, nd *cid.Cid) ([]*Link, error)
} }
// GetLinks returns the CIDs of the children of the given node. Prefer this
// method over looking up the node itself and calling `Links()` on it as this
// method may be able to use a link cache.
func GetLinks(ctx context.Context, ng NodeGetter, c *cid.Cid) ([]*Link, error) {
if c.Type() == cid.Raw {
return nil, nil
}
if gl, ok := ng.(LinkGetter); ok {
return gl.GetLinks(ctx, c)
}
node, err := ng.Get(ctx, c)
if err != nil {
return nil, err
}
return node.Links(), nil
}
// DAGService is an IPFS Merkle DAG service. // DAGService is an IPFS Merkle DAG service.
type DAGService interface { type DAGService interface {
NodeGetter NodeGetter
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment