akka.io
Class UdpMessage

java.lang.Object
  extended by akka.io.UdpMessage

public class UdpMessage
extends java.lang.Object

Java API: factory methods for the message types used when communicating with the Udp service.


Constructor Summary
UdpMessage()
           
 
Method Summary
static Udp.Command bind(ActorRef handler, java.net.InetSocketAddress endpoint)
          Bind without specifying options.
static Udp.Command bind(ActorRef handler, java.net.InetSocketAddress endpoint, java.lang.Iterable<Inet.SocketOption> options)
          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).
static Udp.NoAck noAck()
          Default Udp.NoAck instance which is used when no acknowledgment information is explicitly provided.
static Udp.NoAck noAck(java.lang.Object token)
          Each Udp.Send can optionally request a positive acknowledgment to be sent to the commanding actor.
static Udp.Command resumeReading()
          This message must be sent to the listener actor to re-enable reading from the socket after a Udp.SuspendReading command.
static Udp.Command send(ByteString payload, java.net.InetSocketAddress target)
          The same as send(payload, target, noAck()).
static Udp.Command send(ByteString payload, java.net.InetSocketAddress target, Udp.Event ack)
          This message is understood by the “simple sender” which can be obtained by sending the Udp.SimpleSender query to the UdpExt.manager() as well as by the listener actors which are created in response to Udp.Bind.
static Udp.Command simpleSender()
          Retrieve a simple sender without specifying options.
static Udp.Command simpleSender(java.lang.Iterable<Inet.SocketOption> options)
          Retrieve a reference to a “simple sender” actor of the UDP extension.
static Udp.Command suspendReading()
          Send this message to a listener actor (which sent a Udp.Bound message) to have it stop reading datagrams from the network.
static Udp.Command unbind()
          Send this message to the listener actor that previously sent a Udp.Bound message in order to close the listening socket.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UdpMessage

public UdpMessage()
Method Detail

noAck

public static Udp.NoAck noAck(java.lang.Object token)
Each Udp.Send can optionally request a positive acknowledgment to be sent to the commanding actor. If such notification is not desired the Udp.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 Udp.CommandFailed message.


noAck

public static Udp.NoAck noAck()
Default Udp.NoAck instance which is used when no acknowledgment information is explicitly provided. Its “token” is null.


send

public static Udp.Command send(ByteString payload,
                               java.net.InetSocketAddress target,
                               Udp.Event ack)
This message is understood by the “simple sender” which can be obtained by sending the Udp.SimpleSender query to the UdpExt.manager() as well as by the listener actors which are created in response to Udp.Bind. It will send the given payload data as one UDP datagram to the given target address. The UDP actor will respond with Udp.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 Udp.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 Udp.Bind in that case.


send

public static Udp.Command send(ByteString payload,
                               java.net.InetSocketAddress target)
The same as send(payload, target, noAck()).


bind

public static Udp.Command bind(ActorRef handler,
                               java.net.InetSocketAddress endpoint,
                               java.lang.Iterable<Inet.SocketOption> options)
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 Udp.Bound message, or the manager will reply with a Udp.CommandFailed message.


bind

public static Udp.Command bind(ActorRef handler,
                               java.net.InetSocketAddress endpoint)
Bind without specifying options.


unbind

public static Udp.Command unbind()
Send this message to the listener actor that previously sent a Udp.Bound message in order to close the listening socket. The recipient will reply with an Udp.Unbound message.


simpleSender

public static Udp.Command simpleSender(java.lang.Iterable<Inet.SocketOption> options)
Retrieve a reference to a “simple sender” actor of the UDP extension. The newly created “simple sender” will reply with the Udp.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 PoisonPill when you want to close the socket.


simpleSender

public static Udp.Command simpleSender()
Retrieve a simple sender without specifying options.


suspendReading

public static Udp.Command suspendReading()
Send this message to a listener actor (which sent a Udp.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 Udp.ResumeReading command.


resumeReading

public static Udp.Command resumeReading()
This message must be sent to the listener actor to re-enable reading from the socket after a Udp.SuspendReading command.