org.jgroups.protocols
Class UDP

java.lang.Object
  extended byorg.jgroups.stack.Protocol
      extended byorg.jgroups.protocols.TP
          extended byorg.jgroups.protocols.UDP
All Implemented Interfaces:
java.lang.Runnable

public class UDP
extends TP
implements java.lang.Runnable

IP multicast transport based on UDP. Messages to the group (msg.dest == null) will be multicast (to all group members), whereas point-to-point messages (msg.dest != null) will be unicast to a single member. Uses a multicast and a unicast socket.

The following properties are read by the UDP protocol:

Author:
Bela Ban

Nested Class Summary
 class UDP.UcastReceiver
           
 
Field Summary
 
Fields inherited from class org.jgroups.stack.Protocol
down_handler, down_prot, down_queue, down_thread, down_thread_prio, log, observer, props, stack, stats, trace, up_handler, up_prot, up_queue, up_thread, up_thread_prio, warn
 
Constructor Summary
UDP()
          Creates the UDP protocol, and initializes the state variables, does however not start any sockets or threads.
 
Method Summary
 java.lang.String getInfo()
           
 java.lang.String getName()
           
protected  void handleConfigEvent(java.util.HashMap map)
           
 void postUnmarshalling(Message msg, Address dest, Address src, boolean multicast)
           
 void postUnmarshallingList(Message msg, Address dest, boolean multicast)
           
 void run()
           
 void sendToAllMembers(byte[] data, int offset, int length)
          Send to all members in the group.
 void sendToSingleMember(Address dest, byte[] data, int offset, int length)
          Send to all members in the group.
 boolean setProperties(java.util.Properties props)
          Setup the Protocol instance acording to the configuration string.
 void start()
          Creates the unicast and multicast sockets and starts the unicast and multicast receiver threads
 void stop()
          This method is called on a Channel.disconnect().
 
Methods inherited from class org.jgroups.protocols.TP
down, dumpStats, getBindAddress, getBindToAllInterfaces, getChannelName, getIncomingQueueSize, getLocalAddress, getMaxBundleSize, getMaxBundleTimeout, getNumBytesReceived, getNumBytesSent, getNumMessagesReceived, getNumMessagesSent, getOutgoingQueueMaxSize, getOutgoingQueueSize, getReceiveInterfaces, getSendInterfaces, handleDownEvent, isDiscardIncompatiblePackets, isEnableBundling, isLoopback, isReceiveOnAllInterfaces, isSendOnAllInterfaces, isUseIncomingPacketHandler, isUseOutgoingPacketHandler, receive, resetStats, setBindAddress, setBindToAllInterfaces, setDiscardIncompatiblePackets, setEnableBundling, setLoopback, setMaxBundleSize, setMaxBundleTimeout, setOutgoingQueueMaxSize, startUpHandler, toString, up
 
Methods inherited from class org.jgroups.stack.Protocol
destroy, downThreadEnabled, enableStats, getDownProtocol, getDownQueue, getProperties, getUpProtocol, getUpQueue, handleSpecialDownEvent, init, isTrace, isWarn, passDown, passUp, printStats, providedDownServices, providedUpServices, receiveDownEvent, receiveUpEvent, requiredDownServices, requiredUpServices, setDownProtocol, setObserver, setPropertiesInternal, setProtocolStack, setTrace, setUpProtocol, setWarn, startDownHandler, statsEnabled, stopInternal, upThreadEnabled
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

UDP

public UDP()
Creates the UDP protocol, and initializes the state variables, does however not start any sockets or threads.

Method Detail

setProperties

public boolean setProperties(java.util.Properties props)
Setup the Protocol instance acording to the configuration string. The following properties are read by the UDP protocol:

Overrides:
setProperties in class TP
Returns:
true if no other properties are left. false if the properties still have data in them, ie , properties are left over and not handled by the protocol stack

run

public void run()
Specified by:
run in interface java.lang.Runnable

getInfo

public java.lang.String getInfo()
Specified by:
getInfo in class TP

sendToAllMembers

public void sendToAllMembers(byte[] data,
                             int offset,
                             int length)
                      throws java.lang.Exception
Description copied from class: TP
Send to all members in the group. UDP would use an IP multicast message, whereas TCP would send N messages, one for each member

Specified by:
sendToAllMembers in class TP
Parameters:
data - The data to be sent. This is not a copy, so don't modify it
offset -
length -
Throws:
java.lang.Exception

sendToSingleMember

public void sendToSingleMember(Address dest,
                               byte[] data,
                               int offset,
                               int length)
                        throws java.lang.Exception
Description copied from class: TP
Send to all members in the group. UDP would use an IP multicast message, whereas TCP would send N messages, one for each member

Specified by:
sendToSingleMember in class TP
Parameters:
dest - Must be a non-null unicast address
data - The data to be sent. This is not a copy, so don't modify it
offset -
length -
Throws:
java.lang.Exception

postUnmarshalling

public void postUnmarshalling(Message msg,
                              Address dest,
                              Address src,
                              boolean multicast)
Specified by:
postUnmarshalling in class TP

postUnmarshallingList

public void postUnmarshallingList(Message msg,
                                  Address dest,
                                  boolean multicast)
Specified by:
postUnmarshallingList in class TP

getName

public java.lang.String getName()
Specified by:
getName in class Protocol

start

public void start()
           throws java.lang.Exception
Creates the unicast and multicast sockets and starts the unicast and multicast receiver threads

Overrides:
start in class TP
Throws:
java.lang.Exception

stop

public void stop()
Description copied from class: Protocol
This method is called on a Channel.disconnect(). Stops work (e.g. by closing multicast socket). Will be called from top to bottom. This means that at the time of the method invocation the neighbor protocol below is still working. This method will replace the STOP, STOP_OK, CLEANUP and CLEANUP_OK events. The ProtocolStack guarantees that when this method is called all messages in the down queue will have been flushed

Overrides:
stop in class TP

handleConfigEvent

protected void handleConfigEvent(java.util.HashMap map)
Overrides:
handleConfigEvent in class TP


Copyright ? 1998-2005 Bela Ban. All Rights Reserved.