Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- trait EventSource[+T] {
- private[this] val listeners = Set[T => Unit]()
- def observe(f: T => Unit) = {
- listeners += f
- new { def unregister() { listeners.remove(f) } }
- }
- def raise[U <: T](x: U) {
- listeners.foreach(_(x))
- }
- }
Add Comment
Please, Sign In to add comment