import (
cmn "github.com/tendermint/tmlibs/common"
+
+ "github.com/bytom/p2p/connection"
)
+//Reactor is responsible for handling incoming messages of one or more `Channels`
type Reactor interface {
cmn.Service // Start, Stop
SetSwitch(*Switch)
// GetChannels returns the list of channel descriptors.
- GetChannels() []*ChannelDescriptor
+ GetChannels() []*connection.ChannelDescriptor
// AddPeer is called by the switch when a new peer is added.
AddPeer(peer *Peer) error
Receive(chID byte, peer *Peer, msgBytes []byte)
}
-//--------------------------------------
-
+//BaseReactor base service of a reactor
type BaseReactor struct {
cmn.BaseService // Provides Start, Stop, .Quit
Switch *Switch
}
+//NewBaseReactor create new base Reactor
func NewBaseReactor(name string, impl Reactor) *BaseReactor {
return &BaseReactor{
BaseService: *cmn.NewBaseService(nil, name, impl),
}
}
+//SetSwitch setting a switch for reactor
func (br *BaseReactor) SetSwitch(sw *Switch) {
br.Switch = sw
}
-func (*BaseReactor) GetChannels() []*ChannelDescriptor { return nil }
-func (*BaseReactor) AddPeer(peer *Peer) {}
-func (*BaseReactor) RemovePeer(peer *Peer, reason interface{}) {}
+
+//GetChannels returns the list of channel descriptors
+func (*BaseReactor) GetChannels() []*connection.ChannelDescriptor { return nil }
+
+//AddPeer is called by the switch when a new peer is added
+func (*BaseReactor) AddPeer(peer *Peer) {}
+
+//RemovePeer is called by the switch when the peer is stopped (due to error or other reason)
+func (*BaseReactor) RemovePeer(peer *Peer, reason interface{}) {}
+
+//Receive is called when msgBytes is received from peer
func (*BaseReactor) Receive(chID byte, peer *Peer, msgBytes []byte) {}