diff --git a/exchange/bitswap/bitswap.go b/exchange/bitswap/bitswap.go index 9cd59af8e3d7356d059111f1cec332f29afee20a..d47c96144c1db38418c874e087533978a49d693f 100644 --- a/exchange/bitswap/bitswap.go +++ b/exchange/bitswap/bitswap.go @@ -31,16 +31,15 @@ type Routing interface { // NewSession initializes a bitswap session. func NewSession(parent context.Context, s bsnet.NetworkService, p *peer.Peer, d ds.Datastore, directory Routing) exchange.Interface { - // FIXME(brian): instantiate a concrete Strategist - receiver := bsnet.Forwarder{} + adapter := bsnet.NewNetworkAdapter(s, nil) bs := &bitswap{ blockstore: blockstore.NewBlockstore(d), notifications: notifications.New(), strategy: strategy.New(), routing: directory, - sender: bsnet.NewNetworkAdapter(s, &receiver), + sender: adapter, } - receiver.Delegate(bs) + adapter.SetDelegate(bs) return bs } diff --git a/exchange/bitswap/network/forwarder.go b/exchange/bitswap/network/forwarder.go deleted file mode 100644 index 603cd0123bc361c1b4dbf1b2a45f0fa739e633d8..0000000000000000000000000000000000000000 --- a/exchange/bitswap/network/forwarder.go +++ /dev/null @@ -1,28 +0,0 @@ -package network - -import ( - context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context" - bsmsg "github.com/jbenet/go-ipfs/exchange/bitswap/message" - peer "github.com/jbenet/go-ipfs/peer" -) - -// Forwarder receives messages and forwards them to the delegate. -// -// Forwarder breaks the circular dependency between the BitSwap Session and the -// Network Service. -type Forwarder struct { - delegate Receiver -} - -func (r *Forwarder) ReceiveMessage( - ctx context.Context, sender *peer.Peer, incoming bsmsg.BitSwapMessage) ( - *peer.Peer, bsmsg.BitSwapMessage, error) { - if r.delegate == nil { - return nil, nil, nil - } - return r.delegate.ReceiveMessage(ctx, sender, incoming) -} - -func (r *Forwarder) Delegate(delegate Receiver) { - r.delegate = delegate -} diff --git a/exchange/bitswap/network/forwarder_test.go b/exchange/bitswap/network/forwarder_test.go deleted file mode 100644 index 73604e110f9106c859657bf770fe28f982858925..0000000000000000000000000000000000000000 --- a/exchange/bitswap/network/forwarder_test.go +++ /dev/null @@ -1,26 +0,0 @@ -package network - -import ( - "testing" - - context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context" - bsmsg "github.com/jbenet/go-ipfs/exchange/bitswap/message" - peer "github.com/jbenet/go-ipfs/peer" -) - -func TestDoesntPanicIfDelegateNotPresent(t *testing.T) { - fwdr := Forwarder{} - fwdr.ReceiveMessage(context.Background(), &peer.Peer{}, bsmsg.New()) -} - -func TestForwardsMessageToDelegate(t *testing.T) { - fwdr := Forwarder{delegate: &EchoDelegate{}} - fwdr.ReceiveMessage(context.Background(), &peer.Peer{}, bsmsg.New()) -} - -type EchoDelegate struct{} - -func (d *EchoDelegate) ReceiveMessage(ctx context.Context, p *peer.Peer, - incoming bsmsg.BitSwapMessage) (*peer.Peer, bsmsg.BitSwapMessage, error) { - return p, incoming, nil -}