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(