org.javagroups.protocols
Class WANPIPE

java.lang.Object
  extended byorg.javagroups.stack.Protocol
      extended byorg.javagroups.protocols.WANPIPE
All Implemented Interfaces:
LogicalLink.Receiver

public class WANPIPE
extends Protocol
implements LogicalLink.Receiver

Logical point-to-point link. Uses multiple physical links to provide a reliable transport. For example, if there are 2 physical links over different networks, and one of them fails, the WAN pipe will still be able to send traffic over the other link. Currently traffic is sent over the physical links round-robin, but this will be made configurable in the future. Example: 70% over first link, 30% over second, or packets are split and sent across both links (increasing the available bandwidth).


Nested Class Summary
 class WANPIPE.WanPipeHeader
           
 
Field Summary
 
Fields inherited from class org.javagroups.stack.Protocol
down_handler, down_prot, down_queue, down_thread, observer, props, stack, up_handler, up_prot, up_queue, up_thread
 
Constructor Summary
WANPIPE()
           
 
Method Summary
 void down(Event evt)
          Sent to destination(s) using the WAN pipe.
 java.lang.String getName()
           
 void linkDown(java.net.InetAddress local, int local_port, java.net.InetAddress remote, int remote_port)
           
 void linkUp(java.net.InetAddress local, int local_port, java.net.InetAddress remote, int remote_port)
           
 void missedHeartbeat(java.net.InetAddress local, int local_port, java.net.InetAddress remote, int remote_port, int num_hbs)
           
 void receive(byte[] buf)
           
 void receivedHeartbeatAgain(java.net.InetAddress local, int local_port, java.net.InetAddress remote, int remote_port)
           
 boolean setProperties(java.util.Properties props)
          Setup the Protocol instance acording to the configuration string
 void start()
          This method is called on a Channel.connect(String).
 void stop()
          This method is called on a Channel.disconnect().
 java.lang.String toString()
           
 
Methods inherited from class org.javagroups.stack.Protocol
destroy, getDownProtocol, getDownQueue, getProperties, getUpProtocol, getUpQueue, init, passDown, passUp, providedDownServices, providedUpServices, receiveDownEvent, receiveUpEvent, requiredDownServices, requiredUpServices, setDownProtocol, setObserver, setPropertiesInternal, setProtocolStack, setUpProtocol, startDownHandler, startUpHandler, stopInternal, up
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

WANPIPE

public WANPIPE()
Method Detail

toString

public java.lang.String toString()

getName

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

down

public void down(Event evt)
Sent to destination(s) using the WAN pipe. Send local messages directly back up the stack

Overrides:
down in class Protocol

start

public void start()
           throws java.lang.Exception
Description copied from class: Protocol
This method is called on a Channel.connect(String). Starts work. Protocols are connected and queues are ready to receive events. Will be called from bottom to top. This call will replace the START and START_OK events.

Overrides:
start in class Protocol
Throws:
java.lang.Exception - Thrown if protocol cannot be started successfully. This will cause the ProtocolStack to fail, so Channel.connect(String) will throw an 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 Protocol

receive

public void receive(byte[] buf)
Specified by:
receive in interface LogicalLink.Receiver

linkDown

public void linkDown(java.net.InetAddress local,
                     int local_port,
                     java.net.InetAddress remote,
                     int remote_port)
Specified by:
linkDown in interface LogicalLink.Receiver

linkUp

public void linkUp(java.net.InetAddress local,
                   int local_port,
                   java.net.InetAddress remote,
                   int remote_port)
Specified by:
linkUp in interface LogicalLink.Receiver

missedHeartbeat

public void missedHeartbeat(java.net.InetAddress local,
                            int local_port,
                            java.net.InetAddress remote,
                            int remote_port,
                            int num_hbs)
Specified by:
missedHeartbeat in interface LogicalLink.Receiver

receivedHeartbeatAgain

public void receivedHeartbeatAgain(java.net.InetAddress local,
                                   int local_port,
                                   java.net.InetAddress remote,
                                   int remote_port)
Specified by:
receivedHeartbeatAgain in interface LogicalLink.Receiver

setProperties

public boolean setProperties(java.util.Properties props)
Setup the Protocol instance acording to the configuration string

Overrides:
setProperties in class Protocol


Copyright © 2001,2002 www.javagroups.com . All Rights Reserved.