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.14 $

Method Summary
 void addTransportStatusEventListener(TransportStatusEventListener listener)
          Add a listener for changes in a channels status
 void asyncSend(Packet packet)
          Asynchronously send a Packet
 boolean canProcessWireFormatVersion(int version)
          Can this wireformat process packets of this version
 String getClientID()
           
 int getCurrentWireFormatVersion()
           
 boolean isMulticast()
           
 boolean isPendingStop()
           
 boolean isServerSide()
           
 boolean isTransportConnected()
           
 void removeTransportStatusEventListener(TransportStatusEventListener listener)
          Remove a listener for changes in a channels status
 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

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


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