remove unnecessary View casting.
This commit is contained in:
parent
8b17a4766d
commit
45a650c012
@ -15,9 +15,6 @@ var buflog = log.Named("buf")
|
|||||||
type BufferedBlockstore struct {
|
type BufferedBlockstore struct {
|
||||||
read Blockstore
|
read Blockstore
|
||||||
write Blockstore
|
write Blockstore
|
||||||
|
|
||||||
readviewer Viewer
|
|
||||||
writeviewer Viewer
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewBuffered(base Blockstore) *BufferedBlockstore {
|
func NewBuffered(base Blockstore) *BufferedBlockstore {
|
||||||
@ -33,15 +30,6 @@ func NewBuffered(base Blockstore) *BufferedBlockstore {
|
|||||||
read: base,
|
read: base,
|
||||||
write: buf,
|
write: buf,
|
||||||
}
|
}
|
||||||
if v, ok := base.(Viewer); ok {
|
|
||||||
bs.readviewer = v
|
|
||||||
}
|
|
||||||
if v, ok := buf.(Viewer); ok {
|
|
||||||
bs.writeviewer = v
|
|
||||||
}
|
|
||||||
if (bs.writeviewer == nil) != (bs.readviewer == nil) {
|
|
||||||
buflog.Warnf("one of the stores is not viewable; running less efficiently")
|
|
||||||
}
|
|
||||||
return bs
|
return bs
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -109,22 +97,13 @@ func (bs *BufferedBlockstore) DeleteBlock(c cid.Cid) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (bs *BufferedBlockstore) View(c cid.Cid, callback func([]byte) error) error {
|
func (bs *BufferedBlockstore) View(c cid.Cid, callback func([]byte) error) error {
|
||||||
if bs.writeviewer == nil || bs.readviewer == nil {
|
|
||||||
// one of the stores isn't Viewer; fall back to pure Get behaviour.
|
|
||||||
blk, err := bs.Get(c)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return callback(blk.RawData())
|
|
||||||
}
|
|
||||||
|
|
||||||
// both stores are viewable.
|
// both stores are viewable.
|
||||||
if err := bs.writeviewer.View(c, callback); err == ErrNotFound {
|
if err := bs.write.View(c, callback); err == ErrNotFound {
|
||||||
// not found in write blockstore; fall through.
|
// not found in write blockstore; fall through.
|
||||||
} else {
|
} else {
|
||||||
return err // propagate errors, or nil, i.e. found.
|
return err // propagate errors, or nil, i.e. found.
|
||||||
}
|
}
|
||||||
return bs.readviewer.View(c, callback)
|
return bs.read.View(c, callback)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (bs *BufferedBlockstore) Get(c cid.Cid) (block.Block, error) {
|
func (bs *BufferedBlockstore) Get(c cid.Cid) (block.Block, error) {
|
||||||
|
Loading…
Reference in New Issue
Block a user