org.openorb.iiop
Class IIOPTransport

java.lang.Object
  |
  +--org.openorb.iiop.IIOPTransport
All Implemented Interfaces:
Transport

public class IIOPTransport
extends java.lang.Object
implements Transport

Interface for creating sockets.

Version:
$Revision: 1.20 $ $Date: 2002/09/15 21:48:46 $
Author:
Unknown

Constructor Summary
IIOPTransport(java.net.InetAddress host, int port, org.apache.avalon.framework.logger.Logger logger)
           
IIOPTransport(java.net.InetAddress host, int port, org.apache.avalon.framework.logger.Logger logger, boolean socketNoDelay, boolean boostRecvPriority, int sendBufferSize, int receiveBufferSize, int bufferedOutputStreamSize)
          Constructor.
IIOPTransport(java.net.Socket sock, int serverPort, org.apache.avalon.framework.logger.Logger logger)
           
IIOPTransport(java.net.Socket sock, int serverPort, org.apache.avalon.framework.logger.Logger logger, boolean socketNoDelay, boolean boostRecvPriority, int sendBufferSize, int receiveBufferSize, int bufferedOutputStreamSize)
          Constructor.
 
Method Summary
 void close()
          Close the connection this always succeeds.
 boolean establishAssociation(Address addr, TransportAssociationHolder binding)
          Check for applicability of channel for carrying messages for the specified address and setup any client transport binding.
 boolean isMessageError()
          Returns true if setMessageError has been called.
 boolean isOpen()
          Is is the transport open?
 void open()
          Open the connection.
 StorageBuffer recvMessage(int timeout, TransportAssociationHolder assoc)
          Read next message.
 void sendMessage(StorageBuffer msg, java.lang.Object assoc)
          Write message to comms protocol.
 void setMessageError()
          If this gets called then the close operation will close by sending a MessageError message.
 java.lang.String toString()
          Print out socket information.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

IIOPTransport

public IIOPTransport(java.net.InetAddress host,
                     int port,
                     org.apache.avalon.framework.logger.Logger logger)

IIOPTransport

public IIOPTransport(java.net.InetAddress host,
                     int port,
                     org.apache.avalon.framework.logger.Logger logger,
                     boolean socketNoDelay,
                     boolean boostRecvPriority,
                     int sendBufferSize,
                     int receiveBufferSize,
                     int bufferedOutputStreamSize)
Constructor.
Parameters:
host - Host of the endpoint.
port - Port of the endoint.

IIOPTransport

public IIOPTransport(java.net.Socket sock,
                     int serverPort,
                     org.apache.avalon.framework.logger.Logger logger)

IIOPTransport

public IIOPTransport(java.net.Socket sock,
                     int serverPort,
                     org.apache.avalon.framework.logger.Logger logger,
                     boolean socketNoDelay,
                     boolean boostRecvPriority,
                     int sendBufferSize,
                     int receiveBufferSize,
                     int bufferedOutputStreamSize)
Constructor.
Parameters:
socket - Client socket.
serverport - Port of the endoint.
Method Detail

open

public void open()
Open the connection. This can throw a CORBA system exception. This is never called by server channels.
Specified by:
open in interface Transport
Following copied from interface: org.openorb.net.Transport
Throws:
COMM_FAILURE - failed to open channel. This exception will be reported to clients.

close

public void close()
Close the connection this always succeeds.
Specified by:
close in interface Transport

isOpen

public boolean isOpen()
Is is the transport open?
Specified by:
isOpen in interface Transport

sendMessage

public void sendMessage(StorageBuffer msg,
                        java.lang.Object assoc)
Write message to comms protocol.
Specified by:
sendMessage in interface Transport
Parameters:
msg - The message to be sent.
assoc - contains whatever was associated with the ClientBinding in the establishBinding operation or with the ServerRequest in the recvMessage operation.
Throws:
COMM_FAILURE - permanent transport failure occoured. Cleanup and then call close.

recvMessage

public StorageBuffer recvMessage(int timeout,
                                 TransportAssociationHolder assoc)
                          throws java.io.EOFException
Read next message. This function will be regularly serviced by a worker thread.
Specified by:
recvMessage in interface Transport
Parameters:
timeout - max time to wait before recieving a message.
assoc - (out) will be set to contain the transport association for the message. This will be passed back to sendMessage when a reply is sent for server requests. For client replies the contents will be compared to the ClientBinding's association, if they don't match some action will be taken.
Throws:
java.io.EOFException - end of file has been reached. Cleanup and call close.
COMM_FAILURE - permanent transport failure occoured. Cleanup and then call close.

setMessageError

public void setMessageError()
If this gets called then the close operation will close by sending a MessageError message.

isMessageError

public boolean isMessageError()
Returns true if setMessageError has been called.

establishAssociation

public boolean establishAssociation(Address addr,
                                    TransportAssociationHolder binding)
Check for applicability of channel for carrying messages for the specified address and setup any client transport binding.
Specified by:
establishAssociation in interface Transport
Parameters:
addr - the address.
assoc - (out) will be set to contain the transport association for the client binding. This will be passed back to sendMessage when a request is sent.
Returns:
true if this transport can carry messages for the target. Basic checks like checking the host and port will already be done, just check specifics. If false a new channel will be opened for requests.

toString

public java.lang.String toString()
Print out socket information.
Overrides:
toString in class java.lang.Object