util folder
parent
adbb5dbc43
commit
573ef316b4
@ -0,0 +1,41 @@
|
|||||||
|
package dataswamp
|
||||||
|
|
||||||
|
type Event struct {
|
||||||
|
eventName string
|
||||||
|
payload interface {}
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewEvent(eventName string, payload interface{}) *Event{
|
||||||
|
return &Event{
|
||||||
|
eventName,
|
||||||
|
payload,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *Event) EventName() string {
|
||||||
|
return e.eventName
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *Event) Payload() interface{} {
|
||||||
|
return e.payload
|
||||||
|
}
|
||||||
|
|
||||||
|
type EventHandler func(e Event)
|
||||||
|
|
||||||
|
type EventBus struct {
|
||||||
|
handlers map[string][]EventHandler
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewEventBus() *EventBus{
|
||||||
|
return &EventBus{ make(map[string][]EventHandler) }
|
||||||
|
}
|
||||||
|
|
||||||
|
func (eb *EventBus) Register(eventName string, handler EventHandler) {
|
||||||
|
eb.handlers[eventName] = append(eb.handlers[eventName], handler)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (eb *EventBus) Handle(e Event){
|
||||||
|
for _, handler := range eb.handlers[e.EventName()] {
|
||||||
|
handler(e)
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
package dataswamp
|
||||||
|
|
||||||
|
type Logger interface {
|
||||||
|
Debug(format string, a ...interface{})
|
||||||
|
Info(format string, a ...interface{})
|
||||||
|
Warn(format string, a ...interface{})
|
||||||
|
}
|
Loading…
Reference in New Issue