bugfix: use consistent interface
We'll want a `type blocks.Block interface {}` later, but for now, make sure Blockstore uses ptrs for both Get and Put. + fix NewBlock output compile error
Juan Batiz-Benet committed
Oct 7, 2014 at 21:27 UTC
7c5679536c547f9f6ab0c120ae5192cfc572465e
3 files changed
+7
-7
blockstore/blockstore.go
+2
-2
@@ -13,7 +13,7 @@ var ValueTypeMismatch = errors.New("The retrieved value is not a Block")
13
14
type Blockstore interface {
15
Get(u.Key) (*blocks.Block, error)
16
- Put(blocks.Block) error
16
+ Put(*blocks.Block) error
17
}
18
19
func NewBlockstore(d ds.Datastore) Blockstore {
@@ -38,6 +38,6 @@ func (bs *blockstore) Get(k u.Key) (*blocks.Block, error) {
38
return blocks.NewBlock(bdata), nil
39
}
40
41
-func (bs *blockstore) Put(block blocks.Block) error {
41
+func (bs *blockstore) Put(block *blocks.Block) error {
42
return bs.datastore.Put(block.Key().DsKey(), block.Data)
43
}
exchange/bitswap/bitswap.go
+1
-1
@@ -134,7 +134,7 @@ func (bs *bitswap) ReceiveMessage(ctx context.Context, p *peer.Peer, incoming bs
134
135
for _, block := range incoming.Blocks() {
136
// TODO verify blocks?
137
- if err := bs.blockstore.Put(block); err != nil {
137
+ if err := bs.blockstore.Put(&block); err != nil {
138
continue // FIXME(brian): err ignored
139
}
140
go bs.notifications.Publish(block)
exchange/bitswap/bitswap_test.go
+4
-4
@@ -67,7 +67,7 @@ func TestGetBlockFromPeerAfterPeerAnnounces(t *testing.T) {
67
68
hasBlock := g.Next()
69
70
- if err := hasBlock.blockstore.Put(*block); err != nil {
70
+ if err := hasBlock.blockstore.Put(block); err != nil {
71
t.Fatal(err)
72
}
73
if err := hasBlock.exchange.HasBlock(context.Background(), *block); err != nil {
@@ -106,7 +106,7 @@ func TestSwarm(t *testing.T) {
106
107
first := instances[0]
108
for _, b := range blocks {
109
- first.blockstore.Put(*b)
109
+ first.blockstore.Put(b)
110
first.exchange.HasBlock(context.Background(), *b)
111
rs.Announce(first.peer, b.Key())
112
}
@@ -177,7 +177,7 @@ func TestSendToWantingPeer(t *testing.T) {
177
beta := bg.Next()
178
t.Logf("Peer %v announes availability of %v\n", w.peer, beta.Key())
179
ctx, _ = context.WithTimeout(context.Background(), timeout)
180
- if err := w.blockstore.Put(beta); err != nil {
180
+ if err := w.blockstore.Put(&beta); err != nil {
181
t.Fatal(err)
182
}
183
w.exchange.HasBlock(ctx, beta)
@@ -190,7 +190,7 @@ func TestSendToWantingPeer(t *testing.T) {
190
191
t.Logf("%v announces availability of %v\n", o.peer, alpha.Key())
192
ctx, _ = context.WithTimeout(context.Background(), timeout)
193
- if err := o.blockstore.Put(alpha); err != nil {
193
+ if err := o.blockstore.Put(&alpha); err != nil {
194
t.Fatal(err)
195
}
196
o.exchange.HasBlock(ctx, alpha)