forked from gogap/event_center
-
Notifications
You must be signed in to change notification settings - Fork 0
/
event_center.go
44 lines (36 loc) · 1.19 KB
/
event_center.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
32
33
34
35
36
37
38
39
40
41
42
43
44
package event_center
type EventCenter interface {
Name() string
RegisterEvent(pushMode PushMode, eventNames ...string) (err error)
Subscribe(eventName string, subscriber *Subscriber) (err error)
Unsubscribe(eventName string, subscriberIds ...string) (err error)
UnsubscribeAll(eventName string) (err error)
PushEvent(eventName string, values ...interface{})
ListEvents() []string
}
var (
defaultEventCenter EventCenter = NewClassicEventCenter("default")
)
func RegisterEvent(pushMode PushMode, eventNames ...string) (err error) {
err = defaultEventCenter.RegisterEvent(pushMode, eventNames...)
return
}
func Subscribe(eventName string, subscriber *Subscriber) (err error) {
err = defaultEventCenter.Subscribe(eventName, subscriber)
return
}
func Unsubscribe(eventName string, subscriberIds ...string) (err error) {
err = defaultEventCenter.Unsubscribe(eventName, subscriberIds...)
return
}
func PushEvent(eventName string, values ...interface{}) {
defaultEventCenter.PushEvent(eventName, values...)
return
}
func UnsubscribeAll(eventName string) (err error) {
err = defaultEventCenter.UnsubscribeAll(eventName)
return
}
func ListEvents() []string {
return defaultEventCenter.ListEvents()
}