com.ibm.ulc.comm
Class UlcTransport

java.lang.Object
  |
  +--com.ibm.ulc.comm.UlcTransport
Direct Known Subclasses:
UlcCorbaBasedTransport, UlcSocketTransport

public abstract class UlcTransport
extends java.lang.Object
implements java.io.Serializable, IDefaults

An abstraction for ULC transports.

See Also:
UlcConnection, Serialized Form

Field Summary
protected  UlcConnection fConnection
           
static boolean fgDebug
           
protected  boolean fTerminated
           
protected  UnboundedBuffer fWriterQueue
           
 
Constructor Summary
protected UlcTransport()
          UlcTransport constructor
  UlcTransport(java.lang.String urlString)
          UlcTransport constructor
 
Method Summary
 void close()
           
static UlcTransport create(java.lang.String urlString)
          The factory method to create a concrete transport depending on the protocol specified in the URL.
 UlcConnection getConnection()
           
 java.lang.String getHost()
           
abstract  java.lang.String getLocalUrlString()
          Return an URL String describing this transports local endpoint.
 int getPort()
           
static java.util.Properties getProperties()
           
 java.lang.String getRemoteUrlString()
          Return an URL String describing this transports remote endpoint.
 java.lang.String getUrlFile()
           
 java.lang.String getUrlString()
          Return an URL String describing this transport's remote endpoint.
protected abstract  void initPeerConnection()
          Method to perform connection initialization with peer.
abstract  boolean readsAsynch()
          Does the transport asynchronous reads itself? Otherwise it inherits the automatic asynchronous read support of this class by overriding readRequests().
 void receive(Request r)
           
 void send(Request r)
          Sends a request.
protected abstract  void sendDirect(Request r, boolean flush)
          Sends a request directly (without using WriterThread)
 void setConnection(UlcConnection connection)
           
protected  void setUrlString(java.lang.String urlString)
           
 void start()
           
protected abstract  void termPeerConnection()
          Method to perform connection termination with peer.
abstract  boolean writesAsynch()
          Does the transport asynchronous writes itself? Otherwise it inherits the automatic asynchronous write support of this class by overriding writeRequests().
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

fgDebug

public static boolean fgDebug

fConnection

protected UlcConnection fConnection

fWriterQueue

protected UnboundedBuffer fWriterQueue

fTerminated

protected boolean fTerminated
Constructor Detail

UlcTransport

protected UlcTransport()
UlcTransport constructor

UlcTransport

public UlcTransport(java.lang.String urlString)
UlcTransport constructor
Parameters:
urlString - java.lang.String
Method Detail

close

public void close()

create

public static UlcTransport create(java.lang.String urlString)
                           throws UlcTransportException
The factory method to create a concrete transport depending on the protocol specified in the URL. The name of the concrete transport class is read in from a property file.
Parameters:
urlString - java.lang.String

getConnection

public UlcConnection getConnection()

getHost

public java.lang.String getHost()

getLocalUrlString

public abstract java.lang.String getLocalUrlString()
Return an URL String describing this transports local endpoint.

getPort

public int getPort()

getProperties

public static java.util.Properties getProperties()

getRemoteUrlString

public java.lang.String getRemoteUrlString()
Return an URL String describing this transports remote endpoint. Default implementation is to return the localUrlString.

getUrlFile

public java.lang.String getUrlFile()

getUrlString

public java.lang.String getUrlString()
Return an URL String describing this transport's remote endpoint.

initPeerConnection

protected abstract void initPeerConnection()
                                    throws UlcTransportException
Method to perform connection initialization with peer.

readsAsynch

public abstract boolean readsAsynch()
Does the transport asynchronous reads itself? Otherwise it inherits the automatic asynchronous read support of this class by overriding readRequests().

receive

public final void receive(Request r)

send

public final void send(Request r)
Sends a request. Requests are sent asynchronously.

sendDirect

protected abstract void sendDirect(Request r,
                                   boolean flush)
Sends a request directly (without using WriterThread)

setConnection

public void setConnection(UlcConnection connection)

setUrlString

protected void setUrlString(java.lang.String urlString)

start

public final void start()
                 throws UlcTransportException

termPeerConnection

protected abstract void termPeerConnection()
Method to perform connection termination with peer.

writesAsynch

public abstract boolean writesAsynch()
Does the transport asynchronous writes itself? Otherwise it inherits the automatic asynchronous write support of this class by overriding writeRequests().