org.codehaus.activemq.transport
Interface TransportChannel

All Superinterfaces:
Service
All Known Implementing Classes:
TransportChannelSupport

public interface TransportChannel
extends Service

A TransportChannel is used for tranporting packets between nodes e.g. a ActiveMQ JMS Connection and Broker. The TransportChannel supports synchronous and asynchronous send operations as well as sync or async reading of packets. A TransportChannel implementation could use a dedicated thread using blocking IO to read from a socket or could use NIO or poll some file system or database etc. On receipt of a Packet the TransportChannel should invoke the PacketListener

Version:
$Revision: 1.6 $

Method Summary
 void addTransportStatusEventListener(TransportStatusEventListener listener)
          Add a listener for changes in a channels status
 void asyncSend(Packet packet)
          Asynchronously send a Packet
 ReceiptHolder asyncSendWithReceipt(Packet packet)
          Asynchronously send a Packet with receipt.
 boolean canProcessWireFormatVersion(int version)
          Can this wireformat process packets of this version
 void forceDisconnect()
          Forces an immediate transport-level disconnect which will be asynchronously reported as an exception to the exceptionListener.
 String getClientID()
           
 int getCurrentWireFormatVersion()
           
 BrokerConnector getEmbeddedBrokerConnector()
          Some transports that rely on an embedded broker need to create the connector used by the broker
 long getLastReceiptTimestamp()
          Gets the timestamp of the last received receipt packet.
 boolean isMulticast()
           
 boolean isPendingStop()
           
 boolean isServerSide()
           
 boolean isTransportConnected()
           
 void removeTransportStatusEventListener(TransportStatusEventListener listener)
          Remove a listener for changes in a channels status
 boolean requiresEmbeddedBroker()
          Some transports rely on an embedded broker (peer based protocols)
 Receipt send(Packet packet)
          synchronously send a Packet
 Receipt send(Packet packet, int timeout)
          Synchrnously send a Packet
 void setClientID(String clientID)
          Provides a way to specify the client ID that this channel is using
 void setExceptionListener(ExceptionListener listener)
          Set an exception listener to listen for asynchronously generated exceptions
 void setPacketListener(PacketListener l)
          Set a listener for Packets
 void setPendingStop(boolean pendingStop)
          Give the TransportChannel a hint it's about to stop
 void setServerSide(boolean serverSide)
          set the server flag
 void setTransportChannelListener(TransportChannelListener listener)
          A listener to be notified when the channel is removed
 void start()
          start listeneing for events
 void stop()
          close the channel
 

Method Detail

setPendingStop

public void setPendingStop(boolean pendingStop)
Give the TransportChannel a hint it's about to stop

Parameters:
pendingStop -

isPendingStop

public boolean isPendingStop()
Returns:
true if the channel is about to stop

stop

public void stop()
close the channel

Specified by:
stop in interface Service

start

public void start()
           throws JMSException
start listeneing for events

Specified by:
start in interface Service
Throws:
JMSException - if an error occurs

forceDisconnect

public void forceDisconnect()
Forces an immediate transport-level disconnect which will be asynchronously reported as an exception to the exceptionListener. If the channel isn't connected, the call will be ignored.


getLastReceiptTimestamp

public long getLastReceiptTimestamp()
Gets the timestamp of the last received receipt packet.

Returns:
the timestamp in milliseconds

send

public Receipt send(Packet packet)
             throws JMSException
synchronously send a Packet

Parameters:
packet -
Returns:
a Receipt
Throws:
JMSException

send

public Receipt send(Packet packet,
                    int timeout)
             throws JMSException
Synchrnously send a Packet

Parameters:
packet - packet to send
timeout - amount of time to wait for a receipt
Returns:
the Receipt
Throws:
JMSException

asyncSend

public void asyncSend(Packet packet)
               throws JMSException
Asynchronously send a Packet

Parameters:
packet - the packet to send
Throws:
JMSException

asyncSendWithReceipt

public ReceiptHolder asyncSendWithReceipt(Packet packet)
                                   throws JMSException
Asynchronously send a Packet with receipt.

Parameters:
packet - the packet to send
Returns:
a ReceiptHolder for the packet
Throws:
JMSException

setPacketListener

public void setPacketListener(PacketListener l)
Set a listener for Packets

Parameters:
l -

setExceptionListener

public void setExceptionListener(ExceptionListener listener)
Set an exception listener to listen for asynchronously generated exceptions

Parameters:
listener -

isMulticast

public boolean isMulticast()
Returns:
true if this transport is multicast based (i.e. broadcasts to multiple nodes)

addTransportStatusEventListener

public void addTransportStatusEventListener(TransportStatusEventListener listener)
Add a listener for changes in a channels status

Parameters:
listener -

removeTransportStatusEventListener

public void removeTransportStatusEventListener(TransportStatusEventListener listener)
Remove a listener for changes in a channels status

Parameters:
listener -

setClientID

public void setClientID(String clientID)
Provides a way to specify the client ID that this channel is using

Parameters:
clientID -

getClientID

public String getClientID()
Returns:
the client ID that this channel is being used for

setTransportChannelListener

public void setTransportChannelListener(TransportChannelListener listener)
A listener to be notified when the channel is removed

Parameters:
listener -

isServerSide

public boolean isServerSide()
Returns:
true if this transport is used by the broker to communicate with a client, or false if this is a client side transport

setServerSide

public void setServerSide(boolean serverSide)
set the server flag

Parameters:
serverSide -

canProcessWireFormatVersion

public boolean canProcessWireFormatVersion(int version)
Can this wireformat process packets of this version

Parameters:
version - the version number to test
Returns:
true if can accept the version

getCurrentWireFormatVersion

public int getCurrentWireFormatVersion()
Returns:
the current version of this wire format

isTransportConnected

public boolean isTransportConnected()
Returns:
true if the transport channel is active, this value will be false through reconnecting

requiresEmbeddedBroker

public boolean requiresEmbeddedBroker()
Some transports rely on an embedded broker (peer based protocols)

Returns:
true if an embedded broker required

getEmbeddedBrokerConnector

public BrokerConnector getEmbeddedBrokerConnector()
                                           throws JMSException
Some transports that rely on an embedded broker need to create the connector used by the broker

Returns:
the BrokerConnector or null if not applicable
Throws:
JMSException


Copyright © 2004-2005 Protique, Ltd.. All Rights Reserved.