refactor(bs, core) rename bitswap objects
Brian Tiger Chow committed
Sep 14, 2014 at 14:59 UTC
ab460ed882944ca3d5470c8c6be91909a14b739c
3 files changed
+19
-15
bitswap/bitswap.go
+8
-3
@@ -60,10 +60,15 @@ type BitSwap struct {
60
haltChan chan struct{}
61
}
62
63
-// NewBitSwap creates a new BitSwap instance. It does not check its parameters.
64
-func NewBitSwap(p *peer.Peer, d ds.Datastore, r routing.IpfsRouting) *BitSwap {
63
+// NewSession initializes a bitswap session.
64
+func NewSession(parent context.Context, p *peer.Peer, d ds.Datastore, r routing.IpfsRouting) *BitSwap {
65
+
66
+ // TODO(brian): define a contract for management of async operations that
67
+ // fall under bitswap's purview
68
+ ctx, _ := context.WithCancel(parent)
69
+
70
receiver := tx.Forwarder{}
66
- sender := tx.NewBSNetService(context.Background(), &receiver)
71
+ sender := tx.NewServiceWrapper(ctx, &receiver)
72
bs := &BitSwap{
73
peer: p,
74
datastore: d,
bitswap/transmission/service_wrapper.go
+6
-6
@@ -9,10 +9,10 @@ import (
9
peer "github.com/jbenet/go-ipfs/peer"
10
)
11
12
-func NewBSNetService(ctx context.Context, r Receiver) Sender {
12
+func NewServiceWrapper(ctx context.Context, r Receiver) Sender {
13
h := &handlerWrapper{r}
14
s := netservice.NewService(ctx, h)
15
- return &serviceWrapper{*s}
15
+ return &senderWrapper{s}
16
}
17
18
// handlerWrapper is responsible for marshaling/unmarshaling NetMessages. It
@@ -47,11 +47,11 @@ func (wrapper *handlerWrapper) HandleMessage(
47
return outgoing, nil
48
}
49
50
-type serviceWrapper struct {
51
- serviceDelegate netservice.Service
50
+type senderWrapper struct {
51
+ serviceDelegate netservice.Sender
52
}
53
54
-func (wrapper *serviceWrapper) SendMessage(
54
+func (wrapper *senderWrapper) SendMessage(
55
ctx context.Context, p *peer.Peer, outgoing bsmsg.Exportable) error {
56
nmsg, err := outgoing.ToNet(p)
57
if err != nil {
@@ -61,7 +61,7 @@ func (wrapper *serviceWrapper) SendMessage(
61
return wrapper.serviceDelegate.SendMessage(ctx, nmsg, req.ID)
62
}
63
64
-func (wrapper *serviceWrapper) SendRequest(ctx context.Context,
64
+func (wrapper *senderWrapper) SendRequest(ctx context.Context,
65
p *peer.Peer, outgoing bsmsg.Exportable) (bsmsg.BitSwapMessage, error) {
66
67
outgoingMsg, err := outgoing.ToNet(p)
core/core.go
+5
-6
@@ -46,7 +46,7 @@ type IpfsNode struct {
46
Routing routing.IpfsRouting
47
48
// the block exchange + strategy (bitswap)
49
- BitSwap *bitswap.BitSwap
49
+ BitSwap bitswap.BitSwap
50
51
// the block service, get/add blocks.
52
Blocks *bserv.BlockService
@@ -81,7 +81,6 @@ func NewIpfsNode(cfg *config.Config, online bool) (*IpfsNode, error) {
81
net *inet.Network
82
// TODO: refactor so we can use IpfsRouting interface instead of being DHT-specific
83
route *dht.IpfsDHT
84
- swap *bitswap.BitSwap
84
)
85
86
if online {
@@ -99,14 +98,14 @@ func NewIpfsNode(cfg *config.Config, online bool) (*IpfsNode, error) {
98
route.Start()
99
100
// TODO(brian): pass a context to bs for its async operations
102
- swap = bitswap.NewBitSwap(local, d, route)
103
- swap.SetStrategy(bitswap.YesManStrategy)
101
+ bitswapSession := bitswap.NewSession(context.TODO(), local, d, route)
102
+ bitswapSession.SetStrategy(bitswap.YesManStrategy)
103
104
// TODO(brian): pass a context to initConnections
105
go initConnections(cfg, route)
106
}
107
109
- bs, err := bserv.NewBlockService(d, swap)
108
+ bs, err := bserv.NewBlockService(d, bitswapSession)
109
if err != nil {
110
return nil, err
111
}
@@ -120,7 +119,7 @@ func NewIpfsNode(cfg *config.Config, online bool) (*IpfsNode, error) {
119
Blocks: bs,
120
DAG: dag,
121
Resolver: &path.Resolver{DAG: dag},
123
- BitSwap: swap,
122
+ BitSwap: bitswapSession,
123
Identity: local,
124
Routing: route,
125
}, nil