@Immutable @ThreadSafe public abstract class Message extends Object implements OpenLcb
Messages (and therefore all subtypes) are immutable once created.
A Message works with a MessageDecoder
object in a double dispatch
pattern to do message specific-processing in e.g. a node implementation.
MessageDecoder
Modifier and Type | Field and Description |
---|---|
(package private) NodeID |
sourceNodeID |
MTI_CONSUMER_IDENTIFIED, MTI_DATAGRAM, MTI_DATAGRAM_RCV_OK, MTI_DATAGRAM_REJECTED, MTI_IDENTIFY_CONSUMERS, MTI_IDENTIFY_CONSUMERS_RANGE, MTI_IDENTIFY_EVENTS, MTI_IDENTIFY_PRODUCERS, MTI_IDENTIFY_PRODUCERS_RANGE, MTI_INITIALIZATION_COMPLETE, MTI_LEARN_EVENT, MTI_OPT_INT_REJECTED, MTI_PC_EVENT_REPORT, MTI_PRODUCER_IDENTIFIED, MTI_PROTOCOL_IDENT_REPLY, MTI_PROTOCOL_IDENT_REQUEST, MTI_SIMPLE_NODE_IDENT_REPLY, MTI_SIMPLE_NODE_IDENT_REQUEST, MTI_STREAM_DATA_COMPLETE, MTI_STREAM_DATA_PROCEED, MTI_STREAM_DATA_SEND, MTI_STREAM_INIT_REPLY, MTI_STREAM_INIT_REQUEST, MTI_VERIFIED_NID, MTI_VERIFY_NID
Modifier | Constructor and Description |
---|---|
protected |
Message() |
|
Message(NodeID source) |
Modifier and Type | Method and Description |
---|---|
void |
applyTo(MessageDecoder decoder,
Connection sender)
Implement message-type-specific
processing when this message
is received by a node.
|
boolean |
equals(Object o)
To be equal, messages have to have the
same type and content
|
abstract int |
getMTI() |
NodeID |
getSourceNodeID() |
int |
hashCode() |
String |
toString() |
NodeID sourceNodeID
public Message(NodeID source)
protected Message()
public NodeID getSourceNodeID()
public void applyTo(MessageDecoder decoder, Connection sender)
Default is to do nothing.
decoder
- the node (or processing component) to apply to this messagesender
- the source of the messagepublic boolean equals(Object o)
public abstract int getMTI()
Copyright © 2018 The OpenLCB Group. All rights reserved.