org.javagroups.protocols
Class TCP

java.lang.Object
  |
  +--org.javagroups.stack.Protocol
        |
        +--org.javagroups.protocols.TCP
All Implemented Interfaces:
ConnectionTable.ConnectionListener, ConnectionTable.Receiver

public class TCP
extends Protocol
implements ConnectionTable.Receiver, ConnectionTable.ConnectionListener

TCP based protocol. Creates a server socket, which gives us the local address of this group member. For each accept() on the server socket, a new thread is created that listens on the socket. For each outgoing message m, if m.dest is in the ougoing hashtable, the associated socket will be reused to send message, otherwise a new socket is created and put in the hashtable. When a socket connection breaks or a member is removed from the group, the corresponding items in the incoming and outgoing hashtables will be removed as well.
This functionality is in ConnectionTable, which isT used by TCP. TCP sends messages using ct.send() and registers with the connection table to receive all incoming messages.

Author:
Bela Ban

Field Summary
 
Fields inherited from class org.javagroups.stack.Protocol
down_handler, down_prot, down_queue, down_thread, down_thread_prio, observer, props, stack, up_handler, up_prot, up_queue, up_thread, up_thread_prio
 
Constructor Summary
TCP()
           
 
Method Summary
 void connectionClosed(Address peer_addr)
           
 void connectionOpened(Address peer_addr)
           
 void down(Event evt)
          Sent to destination(s) using the ConnectionTable class.
 java.lang.String getName()
           
 void receive(Message msg)
          ConnectionTable.Receiver interface
 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 startUpHandler()
          DON'T REMOVE ! This prevents the up-handler thread to be created, which essentially is superfluous: messages are received from the network rather than from a layer below.
 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, stopInternal, up
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TCP

public TCP()
Method Detail

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

getName

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

startUpHandler

public void startUpHandler()
DON'T REMOVE ! This prevents the up-handler thread to be created, which essentially is superfluous: messages are received from the network rather than from a layer below.

Overrides:
startUpHandler 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

down

public void down(Event evt)
Sent to destination(s) using the ConnectionTable class.

Overrides:
down in class Protocol

receive

public void receive(Message msg)
ConnectionTable.Receiver interface

Specified by:
receive in interface ConnectionTable.Receiver

connectionOpened

public void connectionOpened(Address peer_addr)
Specified by:
connectionOpened in interface ConnectionTable.ConnectionListener

connectionClosed

public void connectionClosed(Address peer_addr)
Specified by:
connectionClosed in interface ConnectionTable.ConnectionListener

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.