From d1efffcd4acafd866563336c234fffa292e45519 Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Fri, 19 Jul 2013 22:44:18 +0200 Subject: remove explicit handler reference, messages are now sent to initial sender --- flow-main/src/main/scala/com/github/jodersky/flow/Serial.scala | 5 ++--- .../src/main/scala/com/github/jodersky/flow/SerialManager.scala | 6 +++--- .../scala/com/github/jodersky/flow/samples/terminal/Terminal.scala | 2 +- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/flow-main/src/main/scala/com/github/jodersky/flow/Serial.scala b/flow-main/src/main/scala/com/github/jodersky/flow/Serial.scala index 5c34487..a1ee433 100644 --- a/flow-main/src/main/scala/com/github/jodersky/flow/Serial.scala +++ b/flow-main/src/main/scala/com/github/jodersky/flow/Serial.scala @@ -17,16 +17,15 @@ object Serial extends ExtensionKey[SerialExt] { * Open a new serial port. Send this command to the serial manager to request the opening of a serial port. The manager will * attempt to open a serial port with the specified parameters and, if successful, create a `SerialOperator` actor associated to the port. * The operator actor acts as an intermediate to the underlying native serial port, dealing with threading issues and the such. It will send any events - * to the given `handler` actorref. + * to the sender of this message. * The manager will respond with an `Opened` in case the port was successfully opened, or `OpenFailed` in case of failure. - * @param handler actor that will receive events from the specified serial port (via an operator) * @param port name of serial port * @param baud baud rate to use with serial port * @param characterSize size of a character of the data sent through the serial port * @param twoStopBits set to use two stop bits instead of one * @param parity type of parity to use with serial port */ - case class Open(handler: ActorRef, port: String, baud: Int, characterSize: Int = 8, twoStopBits: Boolean = false, parity: Parity.Parity = Parity.None) extends Command + case class Open(port: String, baud: Int, characterSize: Int = 8, twoStopBits: Boolean = false, parity: Parity.Parity = Parity.None) extends Command /** * Event sent from a port operator, indicating that a serial port was successfully opened. The sender of this message is the operator associated to the given serial port. diff --git a/flow-main/src/main/scala/com/github/jodersky/flow/SerialManager.scala b/flow-main/src/main/scala/com/github/jodersky/flow/SerialManager.scala index 993ebda..e47de31 100644 --- a/flow-main/src/main/scala/com/github/jodersky/flow/SerialManager.scala +++ b/flow-main/src/main/scala/com/github/jodersky/flow/SerialManager.scala @@ -33,9 +33,9 @@ class SerialManager extends Actor with ActorLogging { } def receive = { - case Open(handler, port, baud, cs, tsb, parity) => Try { InternalSerial.open(port, baud, cs, tsb, parity.id) } match { - case Failure(t) => handler ! OpenFailed(t, port, baud, cs, tsb, parity) - case Success(serial) => context.actorOf(Props(classOf[SerialOperator], handler, serial), name = escapePortString(port)) + case Open(port, baud, cs, tsb, parity) => Try { InternalSerial.open(port, baud, cs, tsb, parity.id) } match { + case Failure(t) => sender ! OpenFailed(t, port, baud, cs, tsb, parity) + case Success(serial) => context.actorOf(Props(classOf[SerialOperator], sender, serial), name = escapePortString(port)) } } diff --git a/flow-samples/terminal/src/main/scala/com/github/jodersky/flow/samples/terminal/Terminal.scala b/flow-samples/terminal/src/main/scala/com/github/jodersky/flow/samples/terminal/Terminal.scala index 5ec8cde..ff22910 100644 --- a/flow-samples/terminal/src/main/scala/com/github/jodersky/flow/samples/terminal/Terminal.scala +++ b/flow-samples/terminal/src/main/scala/com/github/jodersky/flow/samples/terminal/Terminal.scala @@ -18,7 +18,7 @@ class Terminal(port: String, baud: Int, cs: Int, tsb: Boolean, parity: Parity.Pa override def preStart() = { log.info(s"Requesting manager to open port: ${port}, baud: ${baud}") - IO(Serial) ! Serial.Open(self, port, baud) + IO(Serial) ! Serial.Open(port, baud) } override def postStop() = { -- cgit v1.2.3