eventmgr: Export things that we should be exporting

This commit is contained in:
Daniel Oaks 2016-01-18 17:13:25 +10:00
parent 04978572cb
commit 01c3c10e17
2 changed files with 14 additions and 11 deletions

@ -5,12 +5,15 @@ package eventmgr
import "sort" import "sort"
type infomap map[string]interface{} // HandlerFn defines a function we can call as a handler.
type handlerfn func(string, infomap) type HandlerFn func(string, InfoMap)
// InfoMap defines a map we pass through event dispatches.
type InfoMap map[string]interface{}
// EventHandler holds the priority and handler function of an event. // EventHandler holds the priority and handler function of an event.
type EventHandler struct { type EventHandler struct {
Handler handlerfn Handler HandlerFn
Priority int Priority int
} }
@ -62,7 +65,7 @@ type EventManager struct {
} }
// Attach lets you attach a handler to the given event. // Attach lets you attach a handler to the given event.
func (manager *EventManager) Attach(event string, handler handlerfn, priority int) { func (manager *EventManager) Attach(event string, handler HandlerFn, priority int) {
var fullhandler EventHandler var fullhandler EventHandler
fullhandler.Handler = handler fullhandler.Handler = handler
fullhandler.Priority = priority fullhandler.Priority = priority

@ -4,7 +4,7 @@ import "testing"
var test2Tracker = 0 var test2Tracker = 0
func handler1(event string, info infomap) { func handler1(event string, info InfoMap) {
t := info["test"].(*testing.T) t := info["test"].(*testing.T)
if info["k"].(int) != 3 { if info["k"].(int) != 3 {
@ -16,7 +16,7 @@ func handler1(event string, info infomap) {
} }
} }
func handler2First(event string, info infomap) { func handler2First(event string, info InfoMap) {
t := info["test"].(*testing.T) t := info["test"].(*testing.T)
if test2Tracker != 0 { if test2Tracker != 0 {
@ -30,7 +30,7 @@ func handler2First(event string, info infomap) {
} }
} }
func handler2Second(event string, info infomap) { func handler2Second(event string, info InfoMap) {
t := info["test"].(*testing.T) t := info["test"].(*testing.T)
if test2Tracker != 3 { if test2Tracker != 3 {
@ -44,7 +44,7 @@ func handler2Second(event string, info infomap) {
} }
} }
func handler2Third(event string, info infomap) { func handler2Third(event string, info InfoMap) {
t := info["test"].(*testing.T) t := info["test"].(*testing.T)
if test2Tracker != 2 { if test2Tracker != 2 {
@ -60,11 +60,11 @@ func handler2Third(event string, info infomap) {
func TestAttachDispatch(t *testing.T) { func TestAttachDispatch(t *testing.T) {
var manager EventManager var manager EventManager
var info infomap var info InfoMap
// test dispatching // test dispatching
manager.Attach("test1", handler1, 0) manager.Attach("test1", handler1, 0)
info = make(infomap) info = make(InfoMap)
info["k"] = 3 info["k"] = 3
info["test"] = t info["test"] = t
manager.Dispatch("test1", info) manager.Dispatch("test1", info)
@ -73,7 +73,7 @@ func TestAttachDispatch(t *testing.T) {
manager.Attach("test2", handler2Second, 8) manager.Attach("test2", handler2Second, 8)
manager.Attach("test2", handler2First, 3) manager.Attach("test2", handler2First, 3)
manager.Attach("test2", handler2Third, 16) manager.Attach("test2", handler2Third, 16)
info = make(infomap) info = make(InfoMap)
info["test"] = t info["test"] = t
manager.Dispatch("test2", info) manager.Dispatch("test2", info)