2010-09-06 15:41:48 +02:00
|
|
|
package se.scalablesolutions.akka.util
|
|
|
|
|
|
2010-09-06 15:43:38 +02:00
|
|
|
/** A Function interface
|
|
|
|
|
* Used to create first-class-functions is Java (sort of)
|
|
|
|
|
* Java API
|
|
|
|
|
*/
|
2010-09-06 15:41:48 +02:00
|
|
|
trait Function[T,R] {
|
|
|
|
|
def apply(param: T): R
|
|
|
|
|
}
|
|
|
|
|
|
2010-09-06 15:43:38 +02:00
|
|
|
/** A Procedure is like a Function, but it doesn't produce a return value
|
|
|
|
|
* Java API
|
|
|
|
|
*/
|
2010-09-06 15:41:48 +02:00
|
|
|
trait Procedure[T] {
|
|
|
|
|
def apply(param: T): Unit
|
2010-09-15 16:49:05 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* An executable piece of code that takes no parameters and doesn't return any value
|
|
|
|
|
*/
|
|
|
|
|
trait SideEffect {
|
|
|
|
|
def apply: Unit
|
|
|
|
|
}
|