From e4bbd246ece1179628856095177186ba8d6ef45a Mon Sep 17 00:00:00 2001 From: Kevin Atkinson Date: Tue, 21 Feb 2017 12:48:03 -0500 Subject: [PATCH] Add some documentation on the intended purpose of GetLinks. License: MIT Signed-off-by: Kevin Atkinson --- merkledag/merkledag.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/merkledag/merkledag.go b/merkledag/merkledag.go index 7b9b2a8e7..f89698c72 100644 --- a/merkledag/merkledag.go +++ b/merkledag/merkledag.go @@ -36,8 +36,10 @@ type DAGService interface { } type LinkService interface { - // Return all links for a node, may be more effect than - // calling Get in DAGService + // GetLinks return all links for a node. The complete node does not + // necessarily have to exist locally, or at all. For example, raw + // leaves cannot possibly have links so there is no need to look + // at the node. GetLinks(context.Context, *cid.Cid) ([]*node.Link, error) GetOfflineLinkService() LinkService @@ -114,6 +116,8 @@ func decodeBlock(b blocks.Block) (node.Node, error) { } } +// GetLinks return the links for the node, the node doesn't necessarily have +// to exist locally. func (n *dagService) GetLinks(ctx context.Context, c *cid.Cid) ([]*node.Link, error) { if c.Type() == cid.Raw { return nil, nil @@ -138,8 +142,9 @@ func (n *dagService) Remove(nd node.Node) error { return n.Blocks.DeleteBlock(nd) } -// get the links for a node, from the node, bypassing the -// LinkService +// GetLinksDirect creates a function to get the links for a node, from +// the node, bypassing the LinkService. If the node does not exist +// locally (and can not be retrieved) an error will be returned. func GetLinksDirect(serv DAGService) GetLinks { return func(ctx context.Context, c *cid.Cid) ([]*node.Link, error) { node, err := serv.Get(ctx, c)