Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
G
go-ipfs
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
jihao
go-ipfs
Commits
c67fc2a2
提交
c67fc2a2
authored
4月 19, 2015
作者:
Juan Batiz-Benet
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #1015 from ipfs/merkledag-link-manipulation
Add additional link manipulation functions
上级
c0c4fd38
20383472
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
36 行增加
和
6 行删除
+36
-6
node.go
merkledag/node.go
+36
-6
没有找到文件。
merkledag/node.go
浏览文件 @
c67fc2a2
...
@@ -88,18 +88,21 @@ func (l *Link) GetNode(serv DAGService) (*Node, error) {
...
@@ -88,18 +88,21 @@ func (l *Link) GetNode(serv DAGService) (*Node, error) {
// AddNodeLink adds a link to another node.
// AddNodeLink adds a link to another node.
func
(
n
*
Node
)
AddNodeLink
(
name
string
,
that
*
Node
)
error
{
func
(
n
*
Node
)
AddNodeLink
(
name
string
,
that
*
Node
)
error
{
n
.
encoded
=
nil
n
.
encoded
=
nil
lnk
,
err
:=
MakeLink
(
that
)
lnk
,
err
:=
MakeLink
(
that
)
lnk
.
Name
=
name
lnk
.
Node
=
that
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
lnk
.
Name
=
name
lnk
.
Node
=
that
n
.
Links
=
append
(
n
.
Links
,
lnk
)
n
.
AddRawLink
(
name
,
lnk
)
return
nil
return
nil
}
}
// AddNodeLink adds a link to another node. without keeping a reference to
// AddNodeLink
Clean
adds a link to another node. without keeping a reference to
// the child node
// the child node
func
(
n
*
Node
)
AddNodeLinkClean
(
name
string
,
that
*
Node
)
error
{
func
(
n
*
Node
)
AddNodeLinkClean
(
name
string
,
that
*
Node
)
error
{
n
.
encoded
=
nil
n
.
encoded
=
nil
...
@@ -107,9 +110,21 @@ func (n *Node) AddNodeLinkClean(name string, that *Node) error {
...
@@ -107,9 +110,21 @@ func (n *Node) AddNodeLinkClean(name string, that *Node) error {
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
lnk
.
Name
=
name
n
.
AddRawLink
(
name
,
lnk
)
return
nil
}
// AddRawLink adds a copy of a link to this node
func
(
n
*
Node
)
AddRawLink
(
name
string
,
l
*
Link
)
error
{
n
.
encoded
=
nil
n
.
Links
=
append
(
n
.
Links
,
&
Link
{
Name
:
name
,
Size
:
l
.
Size
,
Hash
:
l
.
Hash
,
Node
:
l
.
Node
,
})
n
.
Links
=
append
(
n
.
Links
,
lnk
)
return
nil
return
nil
}
}
...
@@ -125,6 +140,21 @@ func (n *Node) RemoveNodeLink(name string) error {
...
@@ -125,6 +140,21 @@ func (n *Node) RemoveNodeLink(name string) error {
return
ErrNotFound
return
ErrNotFound
}
}
// Return a copy of the link with given name
func
(
n
*
Node
)
GetNodeLink
(
name
string
)
(
*
Link
,
error
)
{
for
_
,
l
:=
range
n
.
Links
{
if
l
.
Name
==
name
{
return
&
Link
{
Name
:
l
.
Name
,
Size
:
l
.
Size
,
Hash
:
l
.
Hash
,
Node
:
l
.
Node
,
},
nil
}
}
return
nil
,
ErrNotFound
}
// Copy returns a copy of the node.
// Copy returns a copy of the node.
// NOTE: does not make copies of Node objects in the links.
// NOTE: does not make copies of Node objects in the links.
func
(
n
*
Node
)
Copy
()
*
Node
{
func
(
n
*
Node
)
Copy
()
*
Node
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论