org.codehaus.activemq.io
Class AbstractWireFormat

java.lang.Object
  extended byorg.codehaus.activemq.io.AbstractWireFormat
All Implemented Interfaces:
WireFormat
Direct Known Subclasses:
DefaultWireFormat, TextWireFormat

public abstract class AbstractWireFormat
extends Object
implements WireFormat

Represents a strategy of encoding packets on the wire or on disk using some kind of serialization or wire format.

We use a default efficient format for Java to Java communication but other formats to other systems can be used, such as using simple text strings when talking to JavaScript or coming up with other formats for talking to C / C# languages or proprietary messaging systems we wish to interface with at the wire level etc.

Version:
$Revision: 1.1 $

Constructor Summary
AbstractWireFormat()
           
 
Method Summary
 Packet fromBytes(byte[] bytes)
          Reads the packet from the given byte[]
 Packet fromBytes(byte[] bytes, int offset, int length)
          Reads the packet from the given byte[]
 void initiateProtocol(DataOutput dataOut)
          Some wire formats require a handshake at start-up
 Packet readPacket(String channelID, DatagramPacket dpacket)
          Read a packet from a Datagram packet from the given channelID.
 byte[] toBytes(Packet packet)
          A helper method which converts a packet into a byte array
 DatagramPacket writePacket(String channelID, Packet packet)
          Writes the given package to a new datagram
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.codehaus.activemq.io.WireFormat
canProcessWireFormatVersion, copy, getCurrentWireFormatVersion, readPacket, readPacket, writePacket
 

Constructor Detail

AbstractWireFormat

public AbstractWireFormat()
Method Detail

readPacket

public Packet readPacket(String channelID,
                         DatagramPacket dpacket)
                  throws IOException
Read a packet from a Datagram packet from the given channelID. If the packet is from the same channel ID as it was sent then we have a loop-back so discard the packet

Specified by:
readPacket in interface WireFormat
Parameters:
channelID - is the unique channel ID
dpacket -
Returns:
the packet read from the datagram or null if it should be discarded
Throws:
IOException

writePacket

public DatagramPacket writePacket(String channelID,
                                  Packet packet)
                           throws IOException,
                                  JMSException
Writes the given package to a new datagram

Specified by:
writePacket in interface WireFormat
Parameters:
channelID - is the unique channel ID
packet - is the packet to write
Returns:
Throws:
IOException
JMSException

fromBytes

public Packet fromBytes(byte[] bytes,
                        int offset,
                        int length)
                 throws IOException
Reads the packet from the given byte[]

Specified by:
fromBytes in interface WireFormat
Parameters:
bytes -
offset -
length -
Returns:
Throws:
IOException

fromBytes

public Packet fromBytes(byte[] bytes)
                 throws IOException
Reads the packet from the given byte[]

Specified by:
fromBytes in interface WireFormat
Parameters:
bytes -
Returns:
Throws:
IOException

toBytes

public byte[] toBytes(Packet packet)
               throws IOException,
                      JMSException
A helper method which converts a packet into a byte array

Specified by:
toBytes in interface WireFormat
Parameters:
packet -
Returns:
a byte array representing the packet using some wire protocol
Throws:
IOException
JMSException

initiateProtocol

public void initiateProtocol(DataOutput dataOut)
                      throws IOException,
                             JMSException
Some wire formats require a handshake at start-up

Specified by:
initiateProtocol in interface WireFormat
Parameters:
dataOut -
Throws:
IOException
JMSException


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