object Udp extends ExtensionId[UdpExt] with ExtensionIdProvider
UDP Extension for Akka’s IO layer.
This extension implements the connectionless UDP protocol without
calling connect
on the underlying sockets, i.e. without restricting
from whom data can be received. For “connected” UDP mode see UdpConnected.
For a full description of the design and philosophy behind this IO implementation please refer to the Akka online documentation.
The Java API for generating UDP commands is available at UdpMessage.
- Source
- Udp.scala
- Alphabetic
- By Inheritance
- Udp
- ExtensionIdProvider
- ExtensionId
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
final
case class
Bind
(handler: ActorRef, localAddress: InetSocketAddress, options: Traversable[SocketOption] = Nil) extends Command with Product with Serializable
Send this message to the UdpExt#manager in order to bind to the given local port (or an automatically assigned one if the port number is zero).
Send this message to the UdpExt#manager in order to bind to the given local port (or an automatically assigned one if the port number is zero). The listener actor for the newly bound port will reply with a Bound message, or the manager will reply with a CommandFailed message.
-
final
case class
Bound
(localAddress: InetSocketAddress) extends Event with Product with Serializable
This message is sent by the listener actor in response to a Bind command.
This message is sent by the listener actor in response to a Bind command. If the address to bind to specified a port number of zero, then this message can be inspected to find out which port was automatically assigned.
-
trait
Command
extends HasFailureMessage with Message
The common type of all commands supported by the UDP implementation.
-
final
case class
CommandFailed
(cmd: Command) extends Event with Product with Serializable
When a command fails it will be replied to with this message type, wrapping the failing command object.
-
trait
Event
extends Message
The common type of all events emitted by the UDP implementation.
- sealed trait Message extends AnyRef
-
case class
NoAck
(token: Any) extends Event with Product with Serializable
Each Send can optionally request a positive acknowledgment to be sent to the commanding actor.
Each Send can optionally request a positive acknowledgment to be sent to the commanding actor. If such notification is not desired the Send#ack must be set to an instance of this class. The token contained within can be used to recognize which write failed when receiving a CommandFailed message.
-
final
case class
Received
(data: ByteString, sender: InetSocketAddress) extends Event with Product with Serializable
When a listener actor receives a datagram from its socket it will send it to the handler designated in the Bind message using this message type.
-
final
case class
Send
(payload: ByteString, target: InetSocketAddress, ack: Event) extends Command with Product with Serializable
This message is understood by the “simple sender” which can be obtained by sending the SimpleSender query to the UdpExt#manager as well as by the listener actors which are created in response to Bind.
This message is understood by the “simple sender” which can be obtained by sending the SimpleSender query to the UdpExt#manager as well as by the listener actors which are created in response to Bind. It will send the given payload data as one UDP datagram to the given target address. The UDP actor will respond with CommandFailed if the send could not be enqueued to the O/S kernel because the send buffer was full. If the given
ack
is not of type NoAck the UDP actor will reply with the given object as soon as the datagram has been successfully enqueued to the O/S kernel.The sending UDP socket’s address belongs to the “simple sender” which does not handle inbound datagrams and sends from an ephemeral port; therefore sending using this mechanism is not suitable if replies are expected, use Bind in that case.
-
case class
SimpleSender
(options: Traversable[SocketOption] = Nil) extends Command with Product with Serializable
Retrieve a reference to a “simple sender” actor of the UDP extension.
Retrieve a reference to a “simple sender” actor of the UDP extension. The newly created “simple sender” will reply with the SimpleSenderReady notification.
The “simple sender” is a convenient service for being able to send datagrams when the originating address is meaningless, i.e. when no reply is expected.
The “simple sender” will not stop itself, you will have to send it a akka.actor.PoisonPill when you want to close the socket.
-
sealed
trait
SimpleSenderReady
extends Event
The “simple sender” sends this message type in response to a SimpleSender query.
-
sealed
trait
Unbound
extends AnyRef
This message is sent by the listener actor in response to an
Unbind
command after the socket has been closed.
Value Members
-
def
apply(system: ActorSystem): UdpExt
Returns an instance of the extension identified by this ExtensionId instance.
Returns an instance of the extension identified by this ExtensionId instance.
- Definition Classes
- ExtensionId
-
def
createExtension(system: ExtendedActorSystem): UdpExt
Is used by Akka to instantiate the Extension identified by this ExtensionId, internal use only.
Is used by Akka to instantiate the Extension identified by this ExtensionId, internal use only.
- Definition Classes
- Udp → ExtensionId
-
final
def
equals(other: Any): Boolean
- Definition Classes
- ExtensionId → AnyRef → Any
-
def
get(system: ActorSystem): UdpExt
Java API: retrieve the Udp extension for the given system.
Java API: retrieve the Udp extension for the given system.
- Definition Classes
- Udp → ExtensionId
-
final
def
hashCode(): Int
- Definition Classes
- ExtensionId → AnyRef → Any
-
def
lookup(): Udp.type
Returns the canonical ExtensionId for this Extension
Returns the canonical ExtensionId for this Extension
- Definition Classes
- Udp → ExtensionIdProvider
-
object
NoAck
extends NoAck
Default NoAck instance which is used when no acknowledgment information is explicitly provided.
Default NoAck instance which is used when no acknowledgment information is explicitly provided. Its “token” is
null
. -
object
ResumeReading
extends Command with Product with Serializable
This message must be sent to the listener actor to re-enable reading from the socket after a
SuspendReading
command. -
object
SO
extends SoForwarders
Scala API: This object provides access to all socket options applicable to UDP sockets.
Scala API: This object provides access to all socket options applicable to UDP sockets.
For the Java API see UdpSO.
- object Send extends Serializable
- object SimpleSender extends SimpleSender
- object SimpleSenderReady extends SimpleSenderReady with Product with Serializable
-
object
SuspendReading
extends Command with Product with Serializable
Send this message to a listener actor (which sent a Bound message) to have it stop reading datagrams from the network.
Send this message to a listener actor (which sent a Bound message) to have it stop reading datagrams from the network. If the O/S kernel’s receive buffer runs full then subsequent datagrams will be silently discarded. Re-enable reading from the socket using the
ResumeReading
command. -
object
Unbind
extends Command with Product with Serializable
Send this message to the listener actor that previously sent a Bound message in order to close the listening socket.
- object Unbound extends Unbound with Product with Serializable