提交 06e71033 作者: Stephen Whitmore

Cache files/dirs when added.

License: MIT
Signed-off-by: 's avatarStephen Whitmore <noffle@ipfs.io>
上级 dfd98f27
......@@ -116,6 +116,11 @@ func (d *Directory) childNode(name string) (FSNode, error) {
return nil, err
}
return d.cacheNode(name, nd)
}
// cacheNode caches a node into d.childDirs or d.files and returns the FSNode.
func (d *Directory) cacheNode(name string, nd *dag.Node) (FSNode, error) {
i, err := ft.FromBytes(nd.Data)
if err != nil {
return nil, err
......@@ -334,6 +339,17 @@ func (d *Directory) AddChild(name string, nd *dag.Node) error {
d.modTime = time.Now()
if len(nd.Links) == 0 {
nfi, err := NewFile(name, nd, d, d.dserv)
if err != nil {
return err
}
d.files[name] = nfi
} else {
ndir := NewDirectory(d.ctx, name, nd, d, d.dserv)
d.childDirs[name] = ndir
}
return nil
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论