|
|
@ -3,18 +3,3 @@ package irc |
|
|
|
// A Handler is a function that is part of the irc event loop. It will receive all
|
|
|
|
// events.
|
|
|
|
type Handler func(event *Event, client *Client) |
|
|
|
|
|
|
|
var globalHandlers = make([]Handler, 0, 8) |
|
|
|
|
|
|
|
// AddHandler adds a new handler to the irc handling. The handler may be called from multiple threads at the same
|
|
|
|
// time, so external resources should be locked if there are multiple clients. Adding handlers is not thread
|
|
|
|
// safe and should be done prior to clients being created. Also, this handler will block the individual
|
|
|
|
// client's event loop, so long operations that include network requests and the like should be done in a
|
|
|
|
// goroutine with the needed data **copied** from the handler function.
|
|
|
|
func AddHandler(handler Handler) { |
|
|
|
globalHandlers = append(globalHandlers, handler) |
|
|
|
} |
|
|
|
|
|
|
|
func init() { |
|
|
|
globalHandlers = make([]Handler, 0, 8) |
|
|
|
} |