Skip to content

Commit b36438c

Browse files
committed
simplify childCloser interface
1 parent e8d0dc4 commit b36438c

File tree

3 files changed

+19
-38
lines changed

3 files changed

+19
-38
lines changed

ipnsfs/dir.go

+14-19
Original file line numberDiff line numberDiff line change
@@ -65,22 +65,21 @@ func (d *Directory) Open(tpath []string, mode int) (File, error) {
6565

6666
// consider combining into a single method...
6767
type childCloser interface {
68-
closeChildFile(string) error
69-
closeChildDir(string) error
68+
closeChild(string) error
7069
}
7170

72-
func (d *Directory) closeChildFile(name string) error {
73-
fi, ok := d.files[name]
74-
if !ok {
75-
return errors.New("no open child file by given name")
71+
func (d *Directory) closeChild(name string) error {
72+
child, err := d.Child(name)
73+
if err != nil {
74+
return err
7675
}
7776

78-
nnode, err := fi.mod.GetNode()
77+
nd, err := child.GetNode()
7978
if err != nil {
8079
return err
8180
}
8281

83-
_, err = d.dserv.Add(nnode)
82+
_, err = d.dserv.Add(nd)
8483
if err != nil {
8584
return err
8685
}
@@ -90,16 +89,12 @@ func (d *Directory) closeChildFile(name string) error {
9089
return err
9190
}
9291

93-
err = d.node.AddNodeLink(name, nnode)
92+
err = d.node.AddNodeLink(name, nd)
9493
if err != nil {
9594
return err
9695
}
9796

98-
return d.parent.closeChildDir(d.name)
99-
}
100-
101-
func (d *Directory) closeChildDir(name string) error {
102-
panic("NYI")
97+
return d.parent.closeChild(d.name)
10398
}
10499

105100
func (d *Directory) childFile(name string) (*file, error) {
@@ -208,7 +203,7 @@ func (d *Directory) Mkdir(name string) (*Directory, error) {
208203
return nil, err
209204
}
210205

211-
err = d.parent.closeChildDir(d.name)
206+
err = d.parent.closeChild(d.name)
212207
if err != nil {
213208
return nil, err
214209
}
@@ -225,7 +220,7 @@ func (d *Directory) Unlink(name string) error {
225220
return err
226221
}
227222

228-
return d.parent.closeChildDir(name)
223+
return d.parent.closeChild(d.name)
229224
}
230225

231226
func (d *Directory) RenameEntry(oldname, newname string) error {
@@ -244,7 +239,7 @@ func (d *Directory) RenameEntry(oldname, newname string) error {
244239

245240
delete(d.childDirs, oldname)
246241
d.childDirs[newname] = dir
247-
return d.parent.closeChildDir(d.name)
242+
return d.parent.closeChild(d.name)
248243
}
249244

250245
fi, err := d.childFile(oldname)
@@ -262,7 +257,7 @@ func (d *Directory) RenameEntry(oldname, newname string) error {
262257

263258
delete(d.childDirs, oldname)
264259
d.files[newname] = fi
265-
return d.parent.closeChildDir(d.name)
260+
return d.parent.closeChild(d.name)
266261
}
267262
return ErrNoSuch
268263
}
@@ -294,7 +289,7 @@ func (d *Directory) AddChild(name string, nd *dag.Node) error {
294289
default:
295290
panic("invalid unixfs node")
296291
}
297-
return d.parent.closeChildDir(name)
292+
return d.parent.closeChild(name)
298293
}
299294

300295
func (d *Directory) GetNode() (*dag.Node, error) {

ipnsfs/file.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ func (fi *file) Close() error {
6767
return err
6868
}
6969

70-
err = fi.parent.closeChildFile(fi.name)
70+
err = fi.parent.closeChild(fi.name)
7171
if err != nil {
7272
return err
7373
}

ipnsfs/system.go

+4-18
Original file line numberDiff line numberDiff line change
@@ -198,27 +198,13 @@ func (kr *KeyRoot) Open(tpath []string, mode int) (File, error) {
198198
}
199199
}
200200

201-
func (kr *KeyRoot) closeChildDir(name string) error {
202-
dir, ok := kr.val.(*Directory)
201+
func (kr *KeyRoot) closeChild(name string) error {
202+
child, ok := kr.val.(FSNode)
203203
if !ok {
204-
return errors.New("child of key root not a directory")
204+
return errors.New("child of key root not valid type")
205205
}
206206

207-
k, err := kr.corenode.DAG.Add(dir.node)
208-
if err != nil {
209-
return err
210-
}
211-
212-
return kr.corenode.Namesys.Publish(kr.corenode.Context(), kr.key, k)
213-
}
214-
215-
func (kr *KeyRoot) closeChildFile(name string) error {
216-
fi, ok := kr.val.(*file)
217-
if !ok {
218-
return errors.New("child of key root not a file")
219-
}
220-
221-
nd, err := fi.mod.GetNode()
207+
nd, err := child.GetNode()
222208
if err != nil {
223209
return err
224210
}

0 commit comments

Comments
 (0)