From 06b5804d9c752a562c48b60099bb3258655458f7 Mon Sep 17 00:00:00 2001 From: Brian Tiger Chow <brian.holderchow@gmail.com> Date: Mon, 15 Sep 2014 21:41:16 -0700 Subject: [PATCH] wip(bitswap) port service wrapper --- bitswap/bitswap.go | 7 ++++--- bitswap/transmission/service_wrapper.go | 17 ++++++++--------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/bitswap/bitswap.go b/bitswap/bitswap.go index db4c3cda..ead1d328 100644 --- a/bitswap/bitswap.go +++ b/bitswap/bitswap.go @@ -11,6 +11,7 @@ import ( notifications "github.com/jbenet/go-ipfs/bitswap/notifications" tx "github.com/jbenet/go-ipfs/bitswap/transmission" blocks "github.com/jbenet/go-ipfs/blocks" + net "github.com/jbenet/go-ipfs/net" peer "github.com/jbenet/go-ipfs/peer" routing "github.com/jbenet/go-ipfs/routing" u "github.com/jbenet/go-ipfs/util" @@ -61,14 +62,14 @@ type BitSwap struct { } // NewSession initializes a bitswap session. -func NewSession(parent context.Context, p *peer.Peer, d ds.Datastore, r routing.IpfsRouting) *BitSwap { +func NewSession(parent context.Context, s net.Sender, p *peer.Peer, d ds.Datastore, r routing.IpfsRouting) *BitSwap { // TODO(brian): define a contract for management of async operations that // fall under bitswap's purview - ctx, _ := context.WithCancel(parent) + // ctx, _ := context.WithCancel(parent) receiver := tx.Forwarder{} - sender := tx.NewServiceWrapper(ctx, &receiver) + sender := tx.NewSender(s) bs := &BitSwap{ peer: p, datastore: d, diff --git a/bitswap/transmission/service_wrapper.go b/bitswap/transmission/service_wrapper.go index 85dd4f09..64ca9f27 100644 --- a/bitswap/transmission/service_wrapper.go +++ b/bitswap/transmission/service_wrapper.go @@ -4,21 +4,20 @@ import ( context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context" bsmsg "github.com/jbenet/go-ipfs/bitswap/message" - inet "github.com/jbenet/go-ipfs/net" + net "github.com/jbenet/go-ipfs/net" netmsg "github.com/jbenet/go-ipfs/net/message" - netservice "github.com/jbenet/go-ipfs/net/service" peer "github.com/jbenet/go-ipfs/peer" ) -// NewServiceWrapper handles protobuf marshalling -func NewServiceWrapper(ctx context.Context, r Receiver) Sender { - h := &handlerWrapper{r} - s := netservice.NewService(h) - s.Start(ctx) +// NewSender wraps the net.service.Sender to perform translation between +// BitSwapMessage and NetMessage formats. This allows the BitSwap session to +// ignore these details. +func NewSender(s net.Sender) Sender { return &senderWrapper{s} } -// handlerWrapper is responsible for marshaling/unmarshaling NetMessages. It +// handlerWrapper implements the net.service.Handler interface. It is +// responsible for converting between // delegates calls to the BitSwap delegate. type handlerWrapper struct { bitswapDelegate Receiver @@ -51,7 +50,7 @@ func (wrapper *handlerWrapper) HandleMessage( } type senderWrapper struct { - serviceDelegate inet.Sender + serviceDelegate net.Sender } func (wrapper *senderWrapper) SendMessage( -- GitLab