summaryrefslogtreecommitdiff
path: root/src/actors
diff options
context:
space:
mode:
authorPhilipp Haller <hallerp@gmail.com>2007-07-09 20:55:26 +0000
committerPhilipp Haller <hallerp@gmail.com>2007-07-09 20:55:26 +0000
commitab51bb3e068c61cf32aaf13b29fc923e9840e062 (patch)
treed53a96f34b48879aca14600ba00e34ad73c1776b /src/actors
parentc2c019c73df4d915c4d89da4c1ad1c14cfa42e58 (diff)
downloadscala-ab51bb3e068c61cf32aaf13b29fc923e9840e062.tar.gz
scala-ab51bb3e068c61cf32aaf13b29fc923e9840e062.tar.bz2
scala-ab51bb3e068c61cf32aaf13b29fc923e9840e062.zip
Added scaladoc comments to InputChannel and Out...
Added scaladoc comments to InputChannel and OutputChannel traits. Added ? method to InputChannel. Bumped version numbers.
Diffstat (limited to 'src/actors')
-rw-r--r--src/actors/scala/actors/Actor.scala8
-rw-r--r--src/actors/scala/actors/ActorProxy.scala2
-rw-r--r--src/actors/scala/actors/Channel.scala6
-rw-r--r--src/actors/scala/actors/FJTaskScheduler2.scala2
-rw-r--r--src/actors/scala/actors/Future.scala4
-rw-r--r--src/actors/scala/actors/IFJTaskRunnerGroup.java2
-rw-r--r--src/actors/scala/actors/InputChannel.scala43
-rw-r--r--src/actors/scala/actors/MessageQueue.scala4
-rw-r--r--src/actors/scala/actors/OutputChannel.scala12
-rw-r--r--src/actors/scala/actors/Reaction.scala2
-rw-r--r--src/actors/scala/actors/Scheduler.scala10
-rw-r--r--src/actors/scala/actors/TickedScheduler.scala2
-rw-r--r--src/actors/scala/actors/TimerThread.scala2
-rw-r--r--src/actors/scala/actors/remote/NetKernel.scala3
-rw-r--r--src/actors/scala/actors/remote/RemoteActor.scala3
-rw-r--r--src/actors/scala/actors/remote/Service.scala3
16 files changed, 81 insertions, 27 deletions
diff --git a/src/actors/scala/actors/Actor.scala b/src/actors/scala/actors/Actor.scala
index 78f2dc9815..314cd2f322 100644
--- a/src/actors/scala/actors/Actor.scala
+++ b/src/actors/scala/actors/Actor.scala
@@ -19,7 +19,7 @@ import scala.compat.Platform
* <code>receive</code>, <code>react</code>, <code>reply</code>,
* etc.
*
- * @version 0.9.7
+ * @version 0.9.8
* @author Philipp Haller
*/
object Actor {
@@ -263,7 +263,7 @@ object Actor {
* </li>
* </ul>
*
- * @version 0.9.7
+ * @version 0.9.8
* @author Philipp Haller
*/
trait Actor extends OutputChannel[Any] {
@@ -802,7 +802,7 @@ trait Actor extends OutputChannel[Any] {
* <b>case</b> TIMEOUT <b>=&gt;</b> ...
* }</pre>
*
- * @version 0.9.7
+ * @version 0.9.8
* @author Philipp Haller
*/
case object TIMEOUT
@@ -815,7 +815,7 @@ case class Exit(from: Actor, reason: AnyRef)
* executions.
* </p>
*
- * @version 0.9.7
+ * @version 0.9.8
* @author Philipp Haller
*/
private[actors] class SuspendActorException extends Throwable {
diff --git a/src/actors/scala/actors/ActorProxy.scala b/src/actors/scala/actors/ActorProxy.scala
index 5d6198fe96..3539de6e92 100644
--- a/src/actors/scala/actors/ActorProxy.scala
+++ b/src/actors/scala/actors/ActorProxy.scala
@@ -18,7 +18,7 @@ import java.lang.Thread
* The class <code>ActorProxy</code> provides a dynamic actor proxy for normal
* Java threads.
*
- * @version 0.9.6
+ * @version 0.9.8
* @author Philipp Haller
*/
private[actors] class ActorProxy(t: Thread) extends Actor {
diff --git a/src/actors/scala/actors/Channel.scala b/src/actors/scala/actors/Channel.scala
index 0b5307b14d..eb3d3135a9 100644
--- a/src/actors/scala/actors/Channel.scala
+++ b/src/actors/scala/actors/Channel.scala
@@ -25,7 +25,7 @@ package scala.actors
* }
* </pre>
*
- * @version 0.9.6
+ * @version 0.9.8
* @author Philipp Haller
*/
case class ! [a](ch: Channel[a], msg: a)
@@ -35,7 +35,7 @@ case class ! [a](ch: Channel[a], msg: a)
* actors. Only the actor creating an instance of a
* <code>Channel</code> may receive from it.
*
- * @version 0.9.6
+ * @version 0.9.8
* @author Philipp Haller
*/
class Channel[Msg] extends InputChannel[Msg] with OutputChannel[Msg] {
@@ -83,7 +83,7 @@ class Channel[Msg] extends InputChannel[Msg] with OutputChannel[Msg] {
/**
* Receives the next message from this <code>Channel</code>.
*/
- def ? : Any = receive {
+ def ? : Msg = receive {
case x => x
}
diff --git a/src/actors/scala/actors/FJTaskScheduler2.scala b/src/actors/scala/actors/FJTaskScheduler2.scala
index 4cc59044ee..3f76116a73 100644
--- a/src/actors/scala/actors/FJTaskScheduler2.scala
+++ b/src/actors/scala/actors/FJTaskScheduler2.scala
@@ -11,7 +11,7 @@ import scala.collection.mutable.{ArrayBuffer, Buffer, HashMap, Queue, Stack, Has
/**
* FJTaskScheduler2
*
- * @version 0.9.6
+ * @version 0.9.8
* @author Philipp Haller
*/
class FJTaskScheduler2 extends Thread with IScheduler {
diff --git a/src/actors/scala/actors/Future.scala b/src/actors/scala/actors/Future.scala
index 1247fa5972..aeb8662d38 100644
--- a/src/actors/scala/actors/Future.scala
+++ b/src/actors/scala/actors/Future.scala
@@ -22,7 +22,7 @@ package scala.actors
* </p>
*
* @author Philipp Haller
- * @version 0.9.6
+ * @version 0.9.8
*/
abstract class Future[T](val ch: InputChannel[Any]) extends Function0[T] {
protected var value: Option[T] = None
@@ -32,7 +32,7 @@ abstract class Future[T](val ch: InputChannel[Any]) extends Function0[T] {
/**
* The <code>Futures</code> object contains methods that operate on Futures.
*
- * @version 0.9.6
+ * @version 0.9.8
* @author Philipp Haller
*/
object Futures {
diff --git a/src/actors/scala/actors/IFJTaskRunnerGroup.java b/src/actors/scala/actors/IFJTaskRunnerGroup.java
index e29c367c48..dbbb325710 100644
--- a/src/actors/scala/actors/IFJTaskRunnerGroup.java
+++ b/src/actors/scala/actors/IFJTaskRunnerGroup.java
@@ -4,7 +4,7 @@ package scala.actors;
/**
* IFJTaskRunnerGroup
*
- * @version 0.9.6
+ * @version 0.9.8
* @author Philipp Haller
*/
interface IFJTaskRunnerGroup {
diff --git a/src/actors/scala/actors/InputChannel.scala b/src/actors/scala/actors/InputChannel.scala
index 938a7986e5..35be809264 100644
--- a/src/actors/scala/actors/InputChannel.scala
+++ b/src/actors/scala/actors/InputChannel.scala
@@ -14,12 +14,53 @@ package scala.actors
* The <code>InputChannel</code> trait provides a common interface
* for all channels from which values can be received.
*
- * @version 0.9.6
+ * @version 0.9.8
* @author Philipp Haller
*/
trait InputChannel[+Msg] {
+
+ /**
+ * Receives a message from this <code>InputChannel</code>.
+ *
+ * @param f a partial function with message patterns and actions
+ * @return result of processing the received value
+ */
def receive[R](f: PartialFunction[Msg, R]): R
+
+ /**
+ * Receives a message from this <code>InputChannel</code> within
+ * a certain time span.
+ *
+ * @param msec the time span before timeout
+ * @param f a partial function with message patterns and actions
+ * @return result of processing the received value
+ */
def receiveWithin[R](msec: Long)(f: PartialFunction[Any, R]): R
+
+ /**
+ * Receives a message from this <code>InputChannel</code>.
+ * <p>
+ * This method never returns. Therefore, the rest of the computation
+ * has to be contained in the actions of the partial function.
+ *
+ * @param f a partial function with message patterns and actions
+ */
def react(f: PartialFunction[Msg, Unit]): Nothing
+
+ /**
+ * Receives a message from this <code>InputChannel</code> within
+ * a certain time span.
+ * <p>
+ * This method never returns. Therefore, the rest of the computation
+ * has to be contained in the actions of the partial function.
+ *
+ * @param msec the time span before timeout
+ * @param f a partial function with message patterns and actions
+ */
def reactWithin(msec: Long)(f: PartialFunction[Any, Unit]): Nothing
+
+ /**
+ * Receives the next message from this <code>Channel</code>.
+ */
+ def ? : Msg
}
diff --git a/src/actors/scala/actors/MessageQueue.scala b/src/actors/scala/actors/MessageQueue.scala
index b5f556e177..ca10f6eb46 100644
--- a/src/actors/scala/actors/MessageQueue.scala
+++ b/src/actors/scala/actors/MessageQueue.scala
@@ -5,7 +5,7 @@ package scala.actors
* This class is used by our efficient message queue
* implementation.
*
- * @version 0.9.6
+ * @version 0.9.8
* @author Philipp Haller
*/
class MessageQueueElement {
@@ -20,7 +20,7 @@ class MessageQueueElement {
* library. Classes in this package are supposed to be the only
* clients of this class.
*
- * @version 0.9.4
+ * @version 0.9.8
* @author Philipp Haller
*/
class MessageQueue {
diff --git a/src/actors/scala/actors/OutputChannel.scala b/src/actors/scala/actors/OutputChannel.scala
index 78fd193452..83e190f638 100644
--- a/src/actors/scala/actors/OutputChannel.scala
+++ b/src/actors/scala/actors/OutputChannel.scala
@@ -14,10 +14,20 @@ package scala.actors
* The <code>OutputChannel</code> trait provides a common interface
* for all channels to which values can be sent.
*
- * @version 0.9.6
+ * @version 0.9.8
* @author Philipp Haller
*/
trait OutputChannel[Msg] {
+
+ /**
+ * Sends <code>msg</code> to this
+ * <code>OutputChannel</code> (asynchronous).
+ */
def !(msg: Msg): Unit
+
+ /**
+ * Forwards <code>msg</code> to this
+ * <code>OutputChannel</code> (asynchronous).
+ */
def forward(msg: Msg): Unit
}
diff --git a/src/actors/scala/actors/Reaction.scala b/src/actors/scala/actors/Reaction.scala
index bbcf34f75a..97d0f10bc6 100644
--- a/src/actors/scala/actors/Reaction.scala
+++ b/src/actors/scala/actors/Reaction.scala
@@ -19,7 +19,7 @@ import java.lang.{InterruptedException, Runnable}
* return type <code>Nothing</code>.
* </p>
*
- * @version 0.9.7
+ * @version 0.9.8
* @author Philipp Haller
*/
private[actors] class ExitActorException extends Throwable
diff --git a/src/actors/scala/actors/Scheduler.scala b/src/actors/scala/actors/Scheduler.scala
index ea3c728004..8a88ac0706 100644
--- a/src/actors/scala/actors/Scheduler.scala
+++ b/src/actors/scala/actors/Scheduler.scala
@@ -22,7 +22,7 @@ import scala.collection.mutable.{ArrayBuffer, Buffer, HashMap, Queue, Stack, Has
* The <code>Scheduler</code> object is used by
* <code>Actor</code> to execute tasks of an execution of an actor.
*
- * @version 0.9.6
+ * @version 0.9.8
* @author Philipp Haller
*/
object Scheduler {
@@ -92,7 +92,7 @@ object Scheduler {
* This abstract class provides a common interface for all
* schedulers used to execute actor tasks.
*
- * @version 0.9.6
+ * @version 0.9.8
* @author Philipp Haller
*/
trait IScheduler {
@@ -125,7 +125,7 @@ trait IScheduler {
* This scheduler executes the tasks of an actor on a single
* thread (the current thread).
*
- * @version 0.9.6
+ * @version 0.9.8
* @author Philipp Haller
*/
class SingleThreadedScheduler extends IScheduler {
@@ -160,7 +160,7 @@ class SingleThreadedScheduler extends IScheduler {
* The <code>QuickException</code> class is used to manage control flow
* of certain schedulers and worker threads.
*
- * @version 0.9.6
+ * @version 0.9.8
* @author Philipp Haller
*/
private[actors] class QuitException extends Throwable {
@@ -220,7 +220,7 @@ private[actors] class QuitException extends Throwable {
* execution. QED
* </p>
*
- * @version 0.9.6
+ * @version 0.9.8
* @author Philipp Haller
*/
class WorkerThread(sched: IScheduler) extends Thread {
diff --git a/src/actors/scala/actors/TickedScheduler.scala b/src/actors/scala/actors/TickedScheduler.scala
index be0a6cd350..9c6bb197ae 100644
--- a/src/actors/scala/actors/TickedScheduler.scala
+++ b/src/actors/scala/actors/TickedScheduler.scala
@@ -20,7 +20,7 @@ import scala.compat.Platform
* <p>This scheduler uses a thread pool to execute tasks that are generated
* by the execution of actors.</p>
*
- * @version 0.9.6
+ * @version 0.9.8
* @author Philipp Haller
*/
class TickedScheduler extends Thread with IScheduler {
diff --git a/src/actors/scala/actors/TimerThread.scala b/src/actors/scala/actors/TimerThread.scala
index 4252c40253..6a4abccd23 100644
--- a/src/actors/scala/actors/TimerThread.scala
+++ b/src/actors/scala/actors/TimerThread.scala
@@ -22,7 +22,7 @@ import scala.compat.Platform
* Note that the library deletes non-received <code>TIMEOUT</code> message if a
* message is received before the time-out occurs.
*
- * @version 0.9.6
+ * @version 0.9.8
* @author Sebastien Noir, Philipp Haller
*/
diff --git a/src/actors/scala/actors/remote/NetKernel.scala b/src/actors/scala/actors/remote/NetKernel.scala
index d28ed56ffb..376c79e883 100644
--- a/src/actors/scala/actors/remote/NetKernel.scala
+++ b/src/actors/scala/actors/remote/NetKernel.scala
@@ -17,7 +17,8 @@ case class SyncSend(senderName: Symbol, receiver: Symbol, data: Array[Byte])
case class Reply(senderName: Symbol, receiver: Symbol, data: Array[Byte])
/**
- * @author Philipp Haller
+ * @version 0.9.8
+ * @author Philipp Haller
*/
class NetKernel(service: Service) {
diff --git a/src/actors/scala/actors/remote/RemoteActor.scala b/src/actors/scala/actors/remote/RemoteActor.scala
index a38c56ab27..8e4bdfab90 100644
--- a/src/actors/scala/actors/remote/RemoteActor.scala
+++ b/src/actors/scala/actors/remote/RemoteActor.scala
@@ -38,7 +38,8 @@ package scala.actors.remote
* }
* </pre>
*
- * @author Philipp Haller
+ * @version 0.9.8
+ * @author Philipp Haller
*/
object RemoteActor {
diff --git a/src/actors/scala/actors/remote/Service.scala b/src/actors/scala/actors/remote/Service.scala
index 10bdd3edcf..512d4fd1dd 100644
--- a/src/actors/scala/actors/remote/Service.scala
+++ b/src/actors/scala/actors/remote/Service.scala
@@ -11,7 +11,8 @@
package scala.actors.remote
/**
- * @author Philipp Haller
+ * @version 0.9.8
+ * @author Philipp Haller
*/
trait Service {
val kernel = new NetKernel(this)