| java.lang.Object seda.sandStorm.core.SimpleSink seda.sandStorm.lib.aSocket.AUdpSocket
AUdpSocket | public class AUdpSocket extends SimpleSink (Code) | | An AUdpSocket implements an asynchronous datagram socket. Applications
create an AUdpSocket and associate a SinkIF with it. Packets received
on the socket will be pushed onto the SinkIF as AUdpInPacket objects.
The AUdpSocket can also be used to send messages to the socket, and to
associate a default send address using the connect() method.
author: Matt Welsh See Also: AUdpInPacket |
Constructor Summary | |
public | AUdpSocket(SinkIF compQ) Create a socket bound to any available local port. | public | AUdpSocket(int localport, SinkIF compQ) Create a socket bound to the given local port. | public | AUdpSocket(InetAddress localaddr, int localport, SinkIF compQ, int maxPacketSize, int writeClogThreshold) Create a socket bound to the given local address and local port.
Parameters: maxPacketSize - The maximum size, in bytes, of packets thatthis socket will attempt to receive. |
Method Summary | |
public void | close(SinkIF compQ) Close the socket. | public void | connect(InetAddress addr, int port) Asynchronously connect this socket to the given port. | public void | disconnect() Asynchronously disconnect this socket from the given port.
An AUdpDisconnectEvent will be enqueued to the user when the
disconnect has completed. | public void | enqueue(QueueElementIF packet) Enqueue an outgoing packet to be written to this socket. | public boolean | enqueue_lossy(QueueElementIF packet) Enqueue an outgoing packet to be written to this socket.
The packet must be of type BufferElement or AUdpPacket. | public void | enqueue_many(QueueElementIF packets) Enqueue an set of outgoing packets to this socket. | public void | flush(SinkIF compQ) Flush the socket. | public InetAddress | getAddress() Return the InetAddress that this socket is connected to; returns
null if not connected. | public InetAddress | getLocalAddress() Return the local InetAddress for this socket. | public int | getLocalPort() Return the local port for this socket. | public int | getPort() Return the port that this socket is connected to; returns -1 if
not connected. | public long | getSequenceNumber() Returns the next sequence number for packets arriving on this
socket. | public DatagramSocket | getSocket() | public int | profileSize() Returns the profile size of this connection. | public int | size() Returns the number of elements currently waiting in the sink. | public void | startReader(SinkIF receiveQ) Associate a SinkIF with this socket and allow data
to start flowing into it. | public void | startReader(SinkIF receiveQ, int readClogTries) Associate a SinkIF with this socket and allow data
to start flowing into it. |
DEFAULT_MAX_PACKETSIZE | final public static int DEFAULT_MAX_PACKETSIZE(Code) | | The default maximum packet size read by the socket.
|
localportremport | int localportremport(Code) | | |
maxPacketSizewriteClogThreshold | public int maxPacketSizewriteClogThreshold(Code) | | |
AUdpSocket | public AUdpSocket(SinkIF compQ) throws IOException(Code) | | Create a socket bound to any available local port. This is mainly
used to create outgoing-only sockets.
|
AUdpSocket | public AUdpSocket(int localport, SinkIF compQ) throws IOException(Code) | | Create a socket bound to the given local port.
|
AUdpSocket | public AUdpSocket(InetAddress localaddr, int localport, SinkIF compQ, int maxPacketSize, int writeClogThreshold) throws IOException(Code) | | Create a socket bound to the given local address and local port.
Parameters: maxPacketSize - The maximum size, in bytes, of packets thatthis socket will attempt to receive. The default is DEFAULT_MAX_PACKETSIZE, which is 16 KBytes. Parameters: writeClogThreshold - The maximum number of outstanding writeson this socket before a SinkCloggedEvent is pushed to theconnection's completion queue. This is effectively the maximum depththreshold for this connection's SinkIF. The default value is -1, whichindicates that no SinkCloggedEvents will be generated. |
close | public void close(SinkIF compQ) throws SinkClosedException(Code) | | Close the socket. A SinkClosedEvent will be posted on the given
compQ when the close is complete.
|
connect | public void connect(InetAddress addr, int port)(Code) | | Asynchronously connect this socket to the given port. All send
requests enqueued after this given connect call will use the
given address and port as the default address. An AUdpConnectEvent
will be pushed to the user when the connect has completed.
|
disconnect | public void disconnect()(Code) | | Asynchronously disconnect this socket from the given port.
An AUdpDisconnectEvent will be enqueued to the user when the
disconnect has completed. If this socket is not connected
then an AUdpDisconnectEvent will be pushed to the user regardless.
|
enqueue | public void enqueue(QueueElementIF packet) throws SinkException(Code) | | Enqueue an outgoing packet to be written to this socket.
The packet must be of type BufferElement or AUdpPacket.
|
enqueue_lossy | public boolean enqueue_lossy(QueueElementIF packet)(Code) | | Enqueue an outgoing packet to be written to this socket.
The packet must be of type BufferElement or AUdpPacket. Drops the packet
if it cannot be enqueued.
|
enqueue_many | public void enqueue_many(QueueElementIF packets) throws SinkException(Code) | | Enqueue an set of outgoing packets to this socket.
Each packet must be of type BufferElement or AUdpPacket.
|
flush | public void flush(SinkIF compQ) throws SinkClosedException(Code) | | Flush the socket. A SinkFlushedEvent will be posted on the given
compQ when the close is complete.
|
getAddress | public InetAddress getAddress()(Code) | | Return the InetAddress that this socket is connected to; returns
null if not connected.
|
getLocalAddress | public InetAddress getLocalAddress()(Code) | | Return the local InetAddress for this socket.
|
getLocalPort | public int getLocalPort()(Code) | | Return the local port for this socket.
|
getPort | public int getPort()(Code) | | Return the port that this socket is connected to; returns -1 if
not connected.
|
getSequenceNumber | public long getSequenceNumber()(Code) | | Returns the next sequence number for packets arriving on this
socket. Returns 0 if this socket is not active.
Note that this method may return an inaccurate sequence
number since the call is not synchronized with new message
arrivals that may increment the sequence number.
|
profileSize | public int profileSize()(Code) | | Returns the profile size of this connection.
|
size | public int size()(Code) | | Returns the number of elements currently waiting in the sink.
|
startReader | public void startReader(SinkIF receiveQ)(Code) | | Associate a SinkIF with this socket and allow data
to start flowing into it. When data is read, AUdpInPacket objects
will be pushed into the given SinkIF. If this queue is full,
the socket will attempt to allow packets to queue up in the O/S
network stack (i.e. by not issuing further read calls on the
socket). Until this method is called, no data will be read from
the socket.
|
startReader | public void startReader(SinkIF receiveQ, int readClogTries)(Code) | | Associate a SinkIF with this socket and allow data
to start flowing into it. When data is read, AUdpInPacket objects
will be pushed into the given SinkIF. If this queue is full,
the socket will attempt to allow packets to queue up in the O/S
network stack (i.e. by not issuing further read calls on the
socket). Until this method is called, no data will be read from
the socket.
Parameters: readClogTries - The number of times the aSocket layer willattempt to push an incoming packet onto the given SinkIF while theSinkIF is full. The queue entry will be dropped after this manytries. The default value is -1, which indicates that the aSocketlayer will attempt to push the queue entry indefinitely. |
|
|