org.softamis.net.multicast
Class MultihomeMulticaster

java.lang.Object
  extended by org.softamis.net.multicast.AbstractMulticaster
      extended by org.softamis.net.multicast.MultihomeMulticaster
All Implemented Interfaces:
Multicaster

public class MultihomeMulticaster
extends AbstractMulticaster

Implementation of multicaster used to support multihome systems (ones that has several network interfaces). This implementation cand be used to organized multicasting using all available interfaces.

Author:
Andrew Sazonov

Nested Class Summary
protected  class MultihomeMulticaster.WorkerThread
           
 
Nested classes/interfaces inherited from class org.softamis.net.multicast.AbstractMulticaster
AbstractMulticaster.ListenersInvoker, AbstractMulticaster.ListenersTask
 
Field Summary
protected  InetAddressAcceptor fInetAddressAcceptor
           
protected  LocalNetworkInfoProvider fLocalNetworkInfoProvider
           
protected  java.util.List<MultihomeMulticaster.WorkerThread> fWorkerThreads
           
 
Fields inherited from class org.softamis.net.multicast.AbstractMulticaster
DEFAULT_MAX_BUFFER_SIZE, DEFAULT_PORT, DEFAULT_TTL, fActive, fBindAddress, fBindAddressName, fGroup, fListeners, fListenersInvoker, fListenersThread, fMaxBufferSize, fPort, fTimeToLive, SOCKET_TIMEOUT
 
Constructor Summary
MultihomeMulticaster()
           
 
Method Summary
protected  void cleanup()
           
protected  void disable()
           
protected  void enable()
           
 InetAddressAcceptor getInetAddressAcceptor()
           
 LocalNetworkInfoProvider getLocalNetworkInfoProvider()
           
protected  InetAddressAcceptor obtainInetAddressAcceptor()
           
 void sendData(byte[] aData)
          Sends data to network.
 void setInetAddressAcceptor(InetAddressAcceptor aInetAddressAcceptor)
           
 void setLocalNetworkInfoProvider(LocalNetworkInfoProvider aLocalNetworkInfoProvider)
           
 
Methods inherited from class org.softamis.net.multicast.AbstractMulticaster
addMulticastListener, close, createListenerInvokers, fireDataReceived, getBindAddressName, getGroup, getLocalPort, getMaxBufferSize, getPort, getSocketTimeout, getTimeToLive, isActive, removeMulticastListener, setActive, setBindAddressName, setGroup, setGroupName, setMaxBufferSize, setPort, setTimeToLive, start, stopListeners
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

fLocalNetworkInfoProvider

protected LocalNetworkInfoProvider fLocalNetworkInfoProvider

fWorkerThreads

protected java.util.List<MultihomeMulticaster.WorkerThread> fWorkerThreads

fInetAddressAcceptor

protected InetAddressAcceptor fInetAddressAcceptor
Constructor Detail

MultihomeMulticaster

public MultihomeMulticaster()
Method Detail

disable

protected void disable()
Specified by:
disable in class AbstractMulticaster

enable

protected void enable()
               throws java.io.IOException
Specified by:
enable in class AbstractMulticaster
Throws:
java.io.IOException

obtainInetAddressAcceptor

protected InetAddressAcceptor obtainInetAddressAcceptor()

sendData

public void sendData(byte[] aData)
              throws java.io.IOException
Description copied from interface: Multicaster
Sends data to network.

Parameters:
aData - data should be sent
Throws:
java.io.IOException

cleanup

protected void cleanup()
Specified by:
cleanup in class AbstractMulticaster

getLocalNetworkInfoProvider

public LocalNetworkInfoProvider getLocalNetworkInfoProvider()

setLocalNetworkInfoProvider

public void setLocalNetworkInfoProvider(LocalNetworkInfoProvider aLocalNetworkInfoProvider)

getInetAddressAcceptor

public InetAddressAcceptor getInetAddressAcceptor()

setInetAddressAcceptor

public void setInetAddressAcceptor(InetAddressAcceptor aInetAddressAcceptor)