Mirror of github.com/gissleh/irc
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

20 lines
849 B

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