From 252be07ec5eac30a154e9ec170d397493e0ee6c7 Mon Sep 17 00:00:00 2001 From: Brian Tiger Chow <brian.holderchow@gmail.com> Date: Thu, 18 Sep 2014 19:26:27 -0700 Subject: [PATCH] refac(bitswap) let adapter be created with nil delegate yay deleting code. --- exchange/bitswap/bitswap.go | 7 +++--- exchange/bitswap/network/forwarder.go | 28 ---------------------- exchange/bitswap/network/forwarder_test.go | 26 -------------------- 3 files changed, 3 insertions(+), 58 deletions(-) delete mode 100644 exchange/bitswap/network/forwarder.go delete mode 100644 exchange/bitswap/network/forwarder_test.go diff --git a/exchange/bitswap/bitswap.go b/exchange/bitswap/bitswap.go index 9cd59af8..d47c9614 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 603cd012..00000000 --- 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 73604e11..00000000 --- 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 -} -- GitLab