|
Akka/Scala example source code file (UdpSender.scala)
The UdpSender.scala Akka example source code/** * Copyright (C) 2009-2014 Typesafe Inc. <http://www.typesafe.com> */ package akka.io import java.nio.channels.DatagramChannel import scala.collection.immutable import scala.util.control.NonFatal import akka.dispatch.{ RequiresMessageQueue, UnboundedMessageQueueSemantics } import akka.io.Inet.SocketOption import akka.io.Udp._ import akka.actor._ /** * INTERNAL API */ private[io] class UdpSender(val udp: UdpExt, channelRegistry: ChannelRegistry, commander: ActorRef, options: immutable.Traversable[SocketOption]) extends Actor with ActorLogging with WithUdpSend with RequiresMessageQueue[UnboundedMessageQueueSemantics] { val channel = { val datagramChannel = DatagramChannel.open datagramChannel.configureBlocking(false) val socket = datagramChannel.socket options foreach { _.beforeDatagramBind(socket) } datagramChannel } channelRegistry.register(channel, initialOps = 0) def receive: Receive = { case registration: ChannelRegistration ⇒ commander ! SimpleSenderReady context.become(sendHandlers(registration)) } override def postStop(): Unit = if (channel.isOpen) { log.debug("Closing DatagramChannel after being stopped") try channel.close() catch { case NonFatal(e) ⇒ log.debug("Error closing DatagramChannel: {}", e) } } } Other Akka source code examplesHere is a short list of links related to this Akka UdpSender.scala source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.