## org.openorb.net
Interface Transport

All Known Implementing Classes:
  IIOPTransport

public interface Transport

Transport for messages. Overload toString to give some info on the transport layer. Synchronization groupings:

( [open, close, isOpen, (sendMessage, recvMessage)], establishAssociation )

Version:
  $Revision: 1.6 $ $Date: 2002/06/28 08:59:05 $
Author:
  Chris Wood

Method Summary
`void` `close()` Close the connection.
`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` `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.

Method Detail

### open

    public void open()

  Open the connection. This is only ever called by client channels.
  Throws:
    `COMM_FAILURE` - failed to open channel. This exception will be reported to clients.

### close

    public void close()

  Close the connection.

### isOpen

    public boolean isOpen()

  Is is the transport open?

### sendMessage

    public void sendMessage(StorageBuffer msg,
                            java.lang.Object assoc)

  Write message to comms protocol. If an interrupt occours while writing the interrupt will be preserved.
  Parameters:
    `msg` - The message to be sent.
    `binding` - contains whatever was associated with the ClientBinding in the establishBinding operation or with the ServerRequest in the recvMessage operation.
  Throws:
    `COMM_FAILURE` - Transport failure occoured.

### 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. This operation always reads an entire message if it can, if an interupt occours while reading the interrupt will be preserved.
  Parameters:
    `timeout` - max time to wait before recieving a message. If 0 wait until the read occours or the thread performing the read is interrupted.
    `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. This is an orderly shutdown.
    `COMM_FAILURE` - Transport failure occoured. This is a disorderly shutdown.

### 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.
  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.