-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsubscribing.go
31 lines (25 loc) · 1.15 KB
/
subscribing.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package decs
func (cbus *CommandBus) SubscribeAfterSuccess(eventName string, callback func(data interface{}, dispatcher EventDispatcher)) {
cbus.Subscribe(eventName, AfterSuccess, callback)
}
func (cbus *CommandBus) SubscribeAfterFailure(eventName string, callback func(data interface{}, dispatcher EventDispatcher)) {
cbus.Subscribe(eventName, AfterFailure, callback)
}
func (cbus *CommandBus) SubscribeAfter(eventName string, callback func(data interface{}, dispatcher EventDispatcher)) {
cbus.Subscribe(eventName, After, callback)
}
func (cbus *CommandBus) Subscribe(eventName string, trigger Trigger, callback func(data interface{}, dispatcher EventDispatcher)) {
m := cbus.ebus.subs[eventName]
if m == nil {
m = make(map[Trigger][]func(interface{}, EventDispatcher))
cbus.ebus.subs[eventName] = m
}
m[trigger] = append(m[trigger], callback)
}
func (cbus *CommandBus) SubscribeConditionally(condition func(eventName string) bool, trigger Trigger, callback func(data interface{}, dispatcher EventDispatcher)) {
cbus.ebus.condSubs = append(cbus.ebus.condSubs, &conditionalCallback{
condition: condition,
trigger: trigger,
callback: callback,
})
}