1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-06-30 01:52:26 +08:00

refactor(bitswap/network) rename -> BitSwapNetwork

remove 'adapter' concept
instead, describe the component as the bitswap network

it's still an adapter, but it's just not necessary to describe it as
such
This commit is contained in:
Brian Tiger Chow
2014-10-27 07:16:28 -07:00
committed by Juan Batiz-Benet
parent cf1d463885
commit 154cf4af75
2 changed files with 27 additions and 26 deletions

View File

@ -37,7 +37,7 @@ func NetMessageSession(ctx context.Context, p peer.Peer,
}
}()
network := bsnet.NetMessageAdapter(srv, net, nil)
network := bsnet.NewFromIpfsNetwork(srv, net)
bs := &bitswap{
blockstore: blockstore.NewBlockstore(d),

View File

@ -4,31 +4,32 @@ import (
"errors"
context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context"
"github.com/jbenet/go-ipfs/util"
bsmsg "github.com/jbenet/go-ipfs/exchange/bitswap/message"
inet "github.com/jbenet/go-ipfs/net"
netmsg "github.com/jbenet/go-ipfs/net/message"
peer "github.com/jbenet/go-ipfs/peer"
util "github.com/jbenet/go-ipfs/util"
)
var log = util.Logger("net_message_adapter")
var log = util.Logger("bitswap_network")
// NetMessageAdapter wraps a NetMessage network service
func NetMessageAdapter(s inet.Service, n inet.Network, r Receiver) BitSwapNetwork {
adapter := impl{
nms: s,
net: n,
receiver: r,
// NewFromIpfsNetwork returns a BitSwapNetwork supported by underlying IPFS
// Network & Service
func NewFromIpfsNetwork(s inet.Service, n inet.Network) BitSwapNetwork {
bitswapNetwork := impl{
service: s,
net: n,
}
s.SetHandler(&adapter)
return &adapter
s.SetHandler(&bitswapNetwork)
return &bitswapNetwork
}
// implements an Adapter that integrates with a NetMessage network service
// impl transforms the ipfs network interface, which sends and receives
// NetMessage objects, into the bitswap network interface.
type impl struct {
nms inet.Service
net inet.Network
service inet.Service
net inet.Network
// inbound messages from the network are forwarded to the receiver
receiver Receiver
@ -36,30 +37,30 @@ type impl struct {
// HandleMessage marshals and unmarshals net messages, forwarding them to the
// BitSwapMessage receiver
func (adapter *impl) HandleMessage(
func (bsnet *impl) HandleMessage(
ctx context.Context, incoming netmsg.NetMessage) netmsg.NetMessage {
if adapter.receiver == nil {
if bsnet.receiver == nil {
return nil
}
received, err := bsmsg.FromNet(incoming)
if err != nil {
go adapter.receiver.ReceiveError(err)
go bsnet.receiver.ReceiveError(err)
return nil
}
p, bsmsg := adapter.receiver.ReceiveMessage(ctx, incoming.Peer(), received)
p, bsmsg := bsnet.receiver.ReceiveMessage(ctx, incoming.Peer(), received)
// TODO(brian): put this in a helper function
if bsmsg == nil || p == nil {
adapter.receiver.ReceiveError(errors.New("ReceiveMessage returned nil peer or message"))
bsnet.receiver.ReceiveError(errors.New("ReceiveMessage returned nil peer or message"))
return nil
}
outgoing, err := bsmsg.ToNet(p)
if err != nil {
go adapter.receiver.ReceiveError(err)
go bsnet.receiver.ReceiveError(err)
return nil
}
@ -71,7 +72,7 @@ func (adapter *impl) DialPeer(ctx context.Context, p peer.Peer) error {
return adapter.net.DialPeer(ctx, p)
}
func (adapter *impl) SendMessage(
func (bsnet *impl) SendMessage(
ctx context.Context,
p peer.Peer,
outgoing bsmsg.BitSwapMessage) error {
@ -80,10 +81,10 @@ func (adapter *impl) SendMessage(
if err != nil {
return err
}
return adapter.nms.SendMessage(ctx, nmsg)
return bsnet.service.SendMessage(ctx, nmsg)
}
func (adapter *impl) SendRequest(
func (bsnet *impl) SendRequest(
ctx context.Context,
p peer.Peer,
outgoing bsmsg.BitSwapMessage) (bsmsg.BitSwapMessage, error) {
@ -92,13 +93,13 @@ func (adapter *impl) SendRequest(
if err != nil {
return nil, err
}
incomingMsg, err := adapter.nms.SendRequest(ctx, outgoingMsg)
incomingMsg, err := bsnet.service.SendRequest(ctx, outgoingMsg)
if err != nil {
return nil, err
}
return bsmsg.FromNet(incomingMsg)
}
func (adapter *impl) SetDelegate(r Receiver) {
adapter.receiver = r
func (bsnet *impl) SetDelegate(r Receiver) {
bsnet.receiver = r
}