@cryptotaxi247 / kubo / commits / 1fd99dae5

Remove NewRSNCFromBytes and use NewDagReader for recursive reading

License: MIT Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>

Jakub Sztandera committed Nov 22, 2016 at 19:10 UTC 1fd99dae50dff44d81d42582b49c9d5b5e3238c8
1 file changed +6 -18
unixfs/io/pbdagreader.go
+6 -18
@@ -1,7 +1,6 @@
1 package io
2
3 import (
4 - "bytes"
4 "context"
5 "errors"
6 "fmt"
@@ -53,7 +52,7 @@ func NewPBFileReader(ctx context.Context, n *mdag.ProtoNode, pb *ftpb.Data, serv
52 return &pbDagReader{
53 node: n,
54 serv: serv,
56 - buf: NewRSNCFromBytes(pb.GetData()),
55 + buf: NewBufDagReader(pb.GetData()),
56 promises: promises,
57 ctx: fctx,
58 cancel: cancel,
@@ -91,7 +90,7 @@ func (dr *pbDagReader) precalcNextBuf(ctx context.Context) error {
90 dr.buf = NewPBFileReader(dr.ctx, nxt, pb, dr.serv)
91 return nil
92 case ftpb.Data_Raw:
94 - dr.buf = NewRSNCFromBytes(pb.GetData())
93 + dr.buf = NewBufDagReader(pb.GetData())
94 return nil
95 case ftpb.Data_Metadata:
96 return errors.New("shouldnt have had metadata object inside file")
@@ -100,11 +99,10 @@ func (dr *pbDagReader) precalcNextBuf(ctx context.Context) error {
99 default:
100 return ft.ErrUnrecognizedType
101 }
103 - case *mdag.RawNode:
104 - dr.buf = NewRSNCFromBytes(nxt.RawData())
105 - return nil
102 default:
107 - return errors.New("unrecognized node type in pbDagReader")
103 + var err error
104 + dr.buf, err = NewDagReader(ctx, nxt, dr.serv)
105 + return err
106 }
107 }
108
@@ -200,7 +198,7 @@ func (dr *pbDagReader) Seek(offset int64, whence int) (int64, error) {
198 if int64(len(pb.Data)) >= offset {
199 // Close current buf to close potential child dagreader
200 dr.buf.Close()
203 - dr.buf = NewRSNCFromBytes(pb.GetData()[offset:])
201 + dr.buf = NewBufDagReader(pb.GetData()[offset:])
202
203 // start reading links from the beginning
204 dr.linkPosition = 0
@@ -252,13 +250,3 @@ func (dr *pbDagReader) Seek(offset int64, whence int) (int64, error) {
250 }
251 }
252
255 -// readSeekNopCloser wraps a bytes.Reader to implement ReadSeekCloser
256 -type readSeekNopCloser struct {
257 - *bytes.Reader
258 -}
259 -
260 -func NewRSNCFromBytes(b []byte) ReadSeekCloser {
261 - return &readSeekNopCloser{bytes.NewReader(b)}
262 -}
263 -
264 -func (r *readSeekNopCloser) Close() error { return nil }