util folder

master
Caj Larsson 3 years ago
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…
Cancel
Save