@cryptotaxi247 / kubo / commits / ab460ed88

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