@cryptotaxi247 / kubo / commits / 06b5804d9

wip(bitswap) port service wrapper

Brian Tiger Chow committed Sep 15, 2014 at 21:41 UTC 06b5804d9c752a562c48b60099bb3258655458f7
2 files changed +12 -12
bitswap/bitswap.go
+4 -3
@@ -11,6 +11,7 @@ import (
11 notifications "github.com/jbenet/go-ipfs/bitswap/notifications"
12 tx "github.com/jbenet/go-ipfs/bitswap/transmission"
13 blocks "github.com/jbenet/go-ipfs/blocks"
14 + net "github.com/jbenet/go-ipfs/net"
15 peer "github.com/jbenet/go-ipfs/peer"
16 routing "github.com/jbenet/go-ipfs/routing"
17 u "github.com/jbenet/go-ipfs/util"
@@ -61,14 +62,14 @@ type BitSwap struct {
62 }
63
64 // NewSession initializes a bitswap session.
64 -func NewSession(parent context.Context, p *peer.Peer, d ds.Datastore, r routing.IpfsRouting) *BitSwap {
65 +func NewSession(parent context.Context, s net.Sender, p *peer.Peer, d ds.Datastore, r routing.IpfsRouting) *BitSwap {
66
67 // TODO(brian): define a contract for management of async operations that
68 // fall under bitswap's purview
68 - ctx, _ := context.WithCancel(parent)
69 + // ctx, _ := context.WithCancel(parent)
70
71 receiver := tx.Forwarder{}
71 - sender := tx.NewServiceWrapper(ctx, &receiver)
72 + sender := tx.NewSender(s)
73 bs := &BitSwap{
74 peer: p,
75 datastore: d,
bitswap/transmission/service_wrapper.go
+8 -9
@@ -4,21 +4,20 @@ import (
4 context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context"
5
6 bsmsg "github.com/jbenet/go-ipfs/bitswap/message"
7 - inet "github.com/jbenet/go-ipfs/net"
7 + net "github.com/jbenet/go-ipfs/net"
8 netmsg "github.com/jbenet/go-ipfs/net/message"
9 - netservice "github.com/jbenet/go-ipfs/net/service"
9 peer "github.com/jbenet/go-ipfs/peer"
10 )
11
13 -// NewServiceWrapper handles protobuf marshalling
14 -func NewServiceWrapper(ctx context.Context, r Receiver) Sender {
15 - h := &handlerWrapper{r}
16 - s := netservice.NewService(h)
17 - s.Start(ctx)
12 +// NewSender wraps the net.service.Sender to perform translation between
13 +// BitSwapMessage and NetMessage formats. This allows the BitSwap session to
14 +// ignore these details.
15 +func NewSender(s net.Sender) Sender {
16 return &senderWrapper{s}
17 }
18
21 -// handlerWrapper is responsible for marshaling/unmarshaling NetMessages. It
19 +// handlerWrapper implements the net.service.Handler interface. It is
20 +// responsible for converting between
21 // delegates calls to the BitSwap delegate.
22 type handlerWrapper struct {
23 bitswapDelegate Receiver
@@ -51,7 +50,7 @@ func (wrapper *handlerWrapper) HandleMessage(
50 }
51
52 type senderWrapper struct {
54 - serviceDelegate inet.Sender
53 + serviceDelegate net.Sender
54 }
55
56 func (wrapper *senderWrapper) SendMessage(