Commit 06e71033 authored by Stephen Whitmore's avatar Stephen Whitmore

Cache files/dirs when added.

License: MIT
Signed-off-by: default avatarStephen Whitmore <noffle@ipfs.io>
parent 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 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