Apache Tomcat 7.0.28

org.apache.catalina.tribes.io
Class ChannelData

java.lang.Object
  extended by org.apache.catalina.tribes.io.ChannelData
All Implemented Interfaces:
Serializable, ChannelMessage

public class ChannelData
extends Object
implements ChannelMessage

The ChannelData object is used to transfer a message through the channel interceptor stack and eventually out on a transport to be sent to another node. While the message is being processed by the different interceptors, the message data can be manipulated as each interceptor seems appropriate.

Version:
$Id: ChannelData.java 1096243 2011-04-23 21:53:00Z markt $
Author:
Peter Rossbach, Filip Hanik
See Also:
Serialized Form

Field Summary
static ChannelData[] EMPTY_DATA_ARRAY
           
static boolean USE_SECURE_RANDOM_FOR_UUID
           
 
Constructor Summary
ChannelData()
          Creates an empty channel data with a new unique Id
ChannelData(boolean generateUUID)
          Create an empty channel data object
ChannelData(byte[] uniqueId, XByteBuffer message, long timestamp)
          Creates a new channel data object with data
 
Method Summary
static String bToS(byte[] data)
           
 Object clone()
          Create a shallow clone, only the data gets recreated
 Object deepclone()
          Complete clone
 boolean equals(Object o)
          Compares to ChannelData objects, only compares on getUniqueId().equals(o.getUniqueId())
 void generateUUID()
          Generates a UUID and invokes setUniqueId
 Member getAddress()
          Returns the source or reply-to address
static ChannelData getDataFromPackage(byte[] b)
           
static ChannelData getDataFromPackage(XByteBuffer xbuf)
          Deserializes a ChannelData object from a byte array
 byte[] getDataPackage()
          Serializes the ChannelData object into a byte[] array
 byte[] getDataPackage(byte[] data, int offset)
           
 int getDataPackageLength()
           
 XByteBuffer getMessage()
          returns the byte buffer that contains the actual message payload
 int getOptions()
          The message options is a 32 bit flag set that triggers interceptors and message behavior.
 long getTimestamp()
          Timestamp of when the message was created.
 byte[] getUniqueId()
          Each message must have a globally unique Id.
 int hashCode()
           
static boolean sendAckAsync(int options)
          Utility method, returns true if the options flag indicates that an ack is to be sent after the message has been received but not yet processed
static boolean sendAckSync(int options)
          Utility method, returns true if the options flag indicates that an ack is to be sent after the message has been received and processed
 void setAddress(Member address)
          Sets the source or reply-to address
 void setMessage(XByteBuffer message)
          The byte buffer that contains the actual message payload
 void setOptions(int options)
          Sets the message options.
 void setTimestamp(long timestamp)
          Sets the timestamp of this message
 void setUniqueId(byte[] uniqueId)
           
 String toString()
           
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

EMPTY_DATA_ARRAY

public static final ChannelData[] EMPTY_DATA_ARRAY

USE_SECURE_RANDOM_FOR_UUID

public static volatile boolean USE_SECURE_RANDOM_FOR_UUID
Constructor Detail

ChannelData

public ChannelData()
Creates an empty channel data with a new unique Id

See Also:
ChannelData(boolean)

ChannelData

public ChannelData(boolean generateUUID)
Create an empty channel data object

Parameters:
generateUUID - boolean - if true, a unique Id will be generated

ChannelData

public ChannelData(byte[] uniqueId,
                   XByteBuffer message,
                   long timestamp)
Creates a new channel data object with data

Parameters:
uniqueId - - unique message id
message - - message data
timestamp - - message timestamp
Method Detail

getMessage

public XByteBuffer getMessage()
Description copied from interface: ChannelMessage
returns the byte buffer that contains the actual message payload

Specified by:
getMessage in interface ChannelMessage
Returns:
Returns the message byte buffer

setMessage

public void setMessage(XByteBuffer message)
Description copied from interface: ChannelMessage
The byte buffer that contains the actual message payload

Specified by:
setMessage in interface ChannelMessage
Parameters:
message - The message to send.

getTimestamp

public long getTimestamp()
Description copied from interface: ChannelMessage
Timestamp of when the message was created.

Specified by:
getTimestamp in interface ChannelMessage
Returns:
Returns the timestamp.

setTimestamp

public void setTimestamp(long timestamp)
Description copied from interface: ChannelMessage
Sets the timestamp of this message

Specified by:
setTimestamp in interface ChannelMessage
Parameters:
timestamp - The timestamp to send

getUniqueId

public byte[] getUniqueId()
Description copied from interface: ChannelMessage
Each message must have a globally unique Id. interceptors heavily depend on this id for message processing

Specified by:
getUniqueId in interface ChannelMessage
Returns:
Returns the uniqueId.

setUniqueId

public void setUniqueId(byte[] uniqueId)
Parameters:
uniqueId - The uniqueId to send.

getOptions

public int getOptions()
Description copied from interface: ChannelMessage
The message options is a 32 bit flag set that triggers interceptors and message behavior.

Specified by:
getOptions in interface ChannelMessage
Returns:
returns the message options see org.apache.catalina.tribes.Channel#sendMessage(org.apache.catalina.tribes.Member[], java.io.Serializable, int)
See Also:
Channel.send(Member[], Serializable, int), ChannelInterceptor.getOptionFlag()

setOptions

public void setOptions(int options)
Sets the message options.

Specified by:
setOptions in interface ChannelMessage
Parameters:
options - the message options
See Also:
ChannelMessage.getOptions()

getAddress

public Member getAddress()
Returns the source or reply-to address

Specified by:
getAddress in interface ChannelMessage
Returns:
Member

setAddress

public void setAddress(Member address)
Sets the source or reply-to address

Specified by:
setAddress in interface ChannelMessage
Parameters:
address - Member

generateUUID

public void generateUUID()
Generates a UUID and invokes setUniqueId


getDataPackageLength

public int getDataPackageLength()

getDataPackage

public byte[] getDataPackage()
Serializes the ChannelData object into a byte[] array

Returns:
byte[]

getDataPackage

public byte[] getDataPackage(byte[] data,
                             int offset)

getDataFromPackage

public static ChannelData getDataFromPackage(XByteBuffer xbuf)
Deserializes a ChannelData object from a byte array

Parameters:
xbuf - byte[]
Returns:
ChannelData

getDataFromPackage

public static ChannelData getDataFromPackage(byte[] b)

hashCode

public int hashCode()
Overrides:
hashCode in class Object

equals

public boolean equals(Object o)
Compares to ChannelData objects, only compares on getUniqueId().equals(o.getUniqueId())

Overrides:
equals in class Object
Parameters:
o - Object
Returns:
boolean

clone

public Object clone()
Create a shallow clone, only the data gets recreated

Specified by:
clone in interface ChannelMessage
Overrides:
clone in class Object
Returns:
ClusterData

deepclone

public Object deepclone()
Complete clone

Specified by:
deepclone in interface ChannelMessage
Returns:
ClusterData

sendAckSync

public static boolean sendAckSync(int options)
Utility method, returns true if the options flag indicates that an ack is to be sent after the message has been received and processed

Parameters:
options - int - the options for the message
Returns:
boolean
See Also:
Channel.SEND_OPTIONS_USE_ACK, Channel.SEND_OPTIONS_SYNCHRONIZED_ACK

sendAckAsync

public static boolean sendAckAsync(int options)
Utility method, returns true if the options flag indicates that an ack is to be sent after the message has been received but not yet processed

Parameters:
options - int - the options for the message
Returns:
boolean
See Also:
Channel.SEND_OPTIONS_USE_ACK, Channel.SEND_OPTIONS_SYNCHRONIZED_ACK

toString

public String toString()
Overrides:
toString in class Object

bToS

public static String bToS(byte[] data)

Apache Tomcat 7.0.28

Copyright © 2000-2012 Apache Software Foundation. All Rights Reserved.