Package org.apache.catalina.tribes.io
Class ChannelData
java.lang.Object
org.apache.catalina.tribes.io.ChannelData
- All Implemented Interfaces:
Serializable,Cloneable,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.- Author:
- Peter Rossbach
- See Also:
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionCreates an empty channel data with a new unique IdChannelData(boolean generateUUID) Create an empty channel data objectChannelData(byte[] uniqueId, XByteBuffer message, long timestamp) Creates a new channel data object with data -
Method Summary
Modifier and TypeMethodDescriptionstatic StringbToS(byte[] data) clone()Create a shallow clone, only the data gets recreatedComplete clonebooleanCompares to ChannelData objects, only compares on getUniqueId().equals(o.getUniqueId())voidGenerates a UUID and invokes setUniqueIdReturns the source or reply-to addressstatic ChannelDatagetDataFromPackage(byte[] b) static ChannelDataDeserializes a ChannelData object from a byte arraybyte[]Serializes the ChannelData object into a byte[] arraybyte[]getDataPackage(byte[] data, int offset) intreturns the byte buffer that contains the actual message payloadintThe message options is a 32 bit flag set that triggers interceptors and message behavior.longTimestamp of when the message was created.byte[]Each message must have a globally unique Id.inthashCode()static booleansendAckAsync(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 processedstatic booleansendAckSync(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 processedvoidsetAddress(Member address) Sets the source or reply-to addressvoidsetMessage(XByteBuffer message) The byte buffer that contains the actual message payloadvoidsetOptions(int options) Sets the message options.voidsetTimestamp(long timestamp) Sets the timestamp of this message.voidsetUniqueId(byte[] uniqueId) toString()
-
Field Details
-
EMPTY_DATA_ARRAY
-
USE_SECURE_RANDOM_FOR_UUID
public static volatile boolean USE_SECURE_RANDOM_FOR_UUID
-
-
Constructor Details
-
ChannelData
public ChannelData()Creates an empty channel data with a new unique Id- See Also:
-
ChannelData
public ChannelData(boolean generateUUID) Create an empty channel data object- Parameters:
generateUUID- boolean - if true, a unique Id will be generated
-
ChannelData
Creates a new channel data object with data- Parameters:
uniqueId- - unique message idmessage- - message datatimestamp- - message timestamp
-
-
Method Details
-
getMessage
Description copied from interface:ChannelMessagereturns the byte buffer that contains the actual message payload- Specified by:
getMessagein interfaceChannelMessage- Returns:
- Returns the message byte buffer
-
setMessage
Description copied from interface:ChannelMessageThe byte buffer that contains the actual message payload- Specified by:
setMessagein interfaceChannelMessage- Parameters:
message- The message to send.
-
getTimestamp
public long getTimestamp()Description copied from interface:ChannelMessageTimestamp of when the message was created.- Specified by:
getTimestampin interfaceChannelMessage- Returns:
- Returns the timestamp.
-
setTimestamp
public void setTimestamp(long timestamp) Description copied from interface:ChannelMessageSets the timestamp of this message.- Specified by:
setTimestampin interfaceChannelMessage- Parameters:
timestamp- The timestamp to send
-
getUniqueId
public byte[] getUniqueId()Description copied from interface:ChannelMessageEach message must have a globally unique Id. interceptors heavily depend on this id for message processing- Specified by:
getUniqueIdin interfaceChannelMessage- Returns:
- Returns the uniqueId.
-
setUniqueId
public void setUniqueId(byte[] uniqueId) - Parameters:
uniqueId- The uniqueId to send.
-
getOptions
public int getOptions()Description copied from interface:ChannelMessageThe message options is a 32 bit flag set that triggers interceptors and message behavior.- Specified by:
getOptionsin interfaceChannelMessage- Returns:
- returns the message options see org.apache.catalina.tribes.Channel#sendMessage(org.apache.catalina.tribes.Member[], java.io.Serializable, int)
- See Also:
-
setOptions
public void setOptions(int options) Sets the message options.- Specified by:
setOptionsin interfaceChannelMessage- Parameters:
options- the message options- See Also:
-
getAddress
Returns the source or reply-to address- Specified by:
getAddressin interfaceChannelMessage- Returns:
- Member
-
setAddress
Sets the source or reply-to address- Specified by:
setAddressin interfaceChannelMessage- 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
Deserializes a ChannelData object from a byte array- Parameters:
xbuf- byte[]- Returns:
- ChannelData
-
getDataFromPackage
-
hashCode
public int hashCode() -
equals
Compares to ChannelData objects, only compares on getUniqueId().equals(o.getUniqueId()) -
clone
Create a shallow clone, only the data gets recreated- Specified by:
clonein interfaceChannelMessage- Overrides:
clonein classObject- Returns:
- ClusterData
-
deepclone
Complete clone- Specified by:
deepclonein interfaceChannelMessage- 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:
-
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:
-
toString
-
bToS
-