forked from cwtch.im/cwtch
add cwtchPeer.InitForEvents which allows overriding the default set of eventbus events handles by the peer
This commit is contained in:
parent
8672cc7c1f
commit
5772ce45a4
|
@ -21,6 +21,16 @@ var autoHandleableEvents = map[event.Type]bool{event.EncryptedGroupMessage: true
|
||||||
event.PeerAcknowledgement: true, event.PeerError: true, event.SendMessageToGroupError: true,
|
event.PeerAcknowledgement: true, event.PeerError: true, event.SendMessageToGroupError: true,
|
||||||
event.NewGetValMessageFromPeer: true, event.NewRetValMessageFromPeer: true}
|
event.NewGetValMessageFromPeer: true, event.NewRetValMessageFromPeer: true}
|
||||||
|
|
||||||
|
var DefaultEventsToHandle = []event.Type{
|
||||||
|
event.EncryptedGroupMessage,
|
||||||
|
event.NewMessageFromPeer,
|
||||||
|
event.PeerAcknowledgement,
|
||||||
|
event.NewGroupInvite,
|
||||||
|
event.PeerError,
|
||||||
|
event.SendMessageToGroupError,
|
||||||
|
event.NewGetValMessageFromPeer,
|
||||||
|
}
|
||||||
|
|
||||||
// cwtchPeer manages incoming and outgoing connections and all processing for a Cwtch cwtchPeer
|
// cwtchPeer manages incoming and outgoing connections and all processing for a Cwtch cwtchPeer
|
||||||
type cwtchPeer struct {
|
type cwtchPeer struct {
|
||||||
Profile *model.Profile
|
Profile *model.Profile
|
||||||
|
@ -101,12 +111,15 @@ func FromProfile(profile *model.Profile) CwtchPeer {
|
||||||
|
|
||||||
// Init instantiates a cwtchPeer
|
// Init instantiates a cwtchPeer
|
||||||
func (cp *cwtchPeer) Init(eventBus event.Manager) {
|
func (cp *cwtchPeer) Init(eventBus event.Manager) {
|
||||||
|
cp.InitForEvents(eventBus, DefaultEventsToHandle)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (cp *cwtchPeer) InitForEvents(eventBus event.Manager, toBeHandled []event.Type) {
|
||||||
cp.queue = event.NewQueue()
|
cp.queue = event.NewQueue()
|
||||||
go cp.eventHandler()
|
go cp.eventHandler()
|
||||||
|
|
||||||
cp.eventBus = eventBus
|
cp.eventBus = eventBus
|
||||||
cp.AutoHandleEvents([]event.Type{event.EncryptedGroupMessage, event.NewMessageFromPeer, event.PeerAcknowledgement, event.NewGroupInvite,
|
cp.AutoHandleEvents(toBeHandled)
|
||||||
event.PeerError, event.SendMessageToGroupError, event.NewGetValMessageFromPeer})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// AutoHandleEvents sets an event (if able) to be handled by this peer
|
// AutoHandleEvents sets an event (if able) to be handled by this peer
|
||||||
|
|
Loading…
Reference in New Issue