diff options
author | Jakob Odersky <jodersky@gmail.com> | 2013-07-19 22:44:18 +0200 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2013-07-19 22:44:18 +0200 |
commit | d1efffcd4acafd866563336c234fffa292e45519 (patch) | |
tree | 233b94afb3d3c57a761a6d43a24c2807aef579cf | |
parent | 97734667b94484fda5ad315d2bcc37c70f68869c (diff) | |
download | akka-serial-d1efffcd4acafd866563336c234fffa292e45519.tar.gz akka-serial-d1efffcd4acafd866563336c234fffa292e45519.tar.bz2 akka-serial-d1efffcd4acafd866563336c234fffa292e45519.zip |
remove explicit handler reference, messages are now sent to initial sender
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() = { |