From ab51bb3e068c61cf32aaf13b29fc923e9840e062 Mon Sep 17 00:00:00 2001 From: Philipp Haller Date: Mon, 9 Jul 2007 20:55:26 +0000 Subject: Added scaladoc comments to InputChannel and Out... Added scaladoc comments to InputChannel and OutputChannel traits. Added ? method to InputChannel. Bumped version numbers. --- src/actors/scala/actors/Actor.scala | 8 ++--- src/actors/scala/actors/ActorProxy.scala | 2 +- src/actors/scala/actors/Channel.scala | 6 ++-- src/actors/scala/actors/FJTaskScheduler2.scala | 2 +- src/actors/scala/actors/Future.scala | 4 +-- src/actors/scala/actors/IFJTaskRunnerGroup.java | 2 +- src/actors/scala/actors/InputChannel.scala | 43 +++++++++++++++++++++++- src/actors/scala/actors/MessageQueue.scala | 4 +-- src/actors/scala/actors/OutputChannel.scala | 12 ++++++- src/actors/scala/actors/Reaction.scala | 2 +- src/actors/scala/actors/Scheduler.scala | 10 +++--- src/actors/scala/actors/TickedScheduler.scala | 2 +- src/actors/scala/actors/TimerThread.scala | 2 +- src/actors/scala/actors/remote/NetKernel.scala | 3 +- src/actors/scala/actors/remote/RemoteActor.scala | 3 +- src/actors/scala/actors/remote/Service.scala | 3 +- 16 files changed, 81 insertions(+), 27 deletions(-) (limited to 'src') 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 * receive, react, reply, * etc. * - * @version 0.9.7 + * @version 0.9.8 * @author Philipp Haller */ object Actor { @@ -263,7 +263,7 @@ object Actor { * * * - * @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] { * case TIMEOUT => ... * } * - * @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. *

* - * @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 ActorProxy 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 * } * * - * @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 * Channel 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 Channel. */ - 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 *

* * @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 Futures 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 InputChannel 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 InputChannel. + * + * @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 InputChannel 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 InputChannel. + *

+ * 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 InputChannel within + * a certain time span. + *

+ * 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 Channel. + */ + 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 OutputChannel 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 msg to this + * OutputChannel (asynchronous). + */ def !(msg: Msg): Unit + + /** + * Forwards msg to this + * OutputChannel (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 Nothing. *

* - * @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 Scheduler object is used by * Actor 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 QuickException 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 *

* - * @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 *

This scheduler uses a thread pool to execute tasks that are generated * by the execution of actors.

* - * @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 TIMEOUT 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 * } * * - * @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) -- cgit v1.2.3