# Interface ChannelMessage

All Superinterfaces:
  `Cloneable, Serializable`

All Known Implementing Classes:
  `ChannelData`

public interface ChannelMessage extends Serializable, Cloneable
Message that is passed through the interceptor stack after the data serialized in the Channel object and then passed down to the interceptor and eventually down to the ChannelSender component.

## Method Summary

Modifier and Type
Method
Description
`Object`
`clone()`
Shallow clone, what gets cloned depends on the implementation
`Object`
`deepclone()`
Deep clone, all fields MUST get cloned
`Member`
`getAddress()`
Get the address that this message originated from.
`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. interceptors heavily depend on this id for message processing
`void`
`setAddress(Member member)`
Sets the source or reply-to address of this message
`void`
`setMessage(XByteBuffer buf)`
The byte buffer that contains the actual message payload
`void`
`setOptions(int options)`
sets the option bits for this message
`void`
`setTimestamp(long timestamp)`
Sets the timestamp of this message.

## Method Details

### getAddress

Member getAddress()
Get the address that this message originated from. Almost always `Channel.getLocalMember(boolean)`. This would be set to a different address if the message was being relayed from a host other than the one that originally sent it.

Returns:
  the source or reply-to address of this message

### setAddress

void setAddress(Member member)
Sets the source or reply-to address of this message

Parameters:
  `member` - Member

### getTimestamp

long getTimestamp()
Timestamp of when the message was created.

Returns:
  long timestamp in milliseconds

### setTimestamp

void setTimestamp(long timestamp)
Sets the timestamp of this message.

Parameters:
  `timestamp` - The timestamp

### getUniqueId

byte[] getUniqueId()
Each message must have a globally unique Id. interceptors heavily depend on this id for message processing

Returns:
  byte

### setMessage

void setMessage(XByteBuffer buf)
The byte buffer that contains the actual message payload

Parameters:
  `buf` - XByteBuffer

### getMessage

XByteBuffer getMessage()
returns the byte buffer that contains the actual message payload

Returns:
  XByteBuffer

### getOptions

int getOptions()
The message options is a 32 bit flag set that triggers interceptors and message behavior.

Returns:
  int - the option bits set for this message
See Also:
  - `Channel.send(Member[], Serializable, int)`
  - `ChannelInterceptor.getOptionFlag()`

### setOptions

void setOptions(int options)
sets the option bits for this message

Parameters:
  `options` - int
See Also:
  - `getOptions()`

### clone

Object clone()
Shallow clone, what gets cloned depends on the implementation

Returns:
  ChannelMessage

### deepclone

Object deepclone()
Deep clone, all fields MUST get cloned

Returns:
  ChannelMessage