public final class ChannelAccessVersionUDPMessage extends ChannelAccessVersionMessage
CA_PROTO_VERSION message that is sent from a
client to a server or the other way round via UDP. This message is usually
send at the start of each UDP packet in order to communicate the protocol
version supported by the client (or server) and in order to communicate the
sequence number associated with the search requests in the same packet.ChannelAccessCommand.CA_PROTO_VERSION,
ChannelAccessVersionTCPClientMessage,
ChannelAccessVersionTCPServerMessageversioncommand, originalMessageHeader| Constructor and Description |
|---|
ChannelAccessVersionUDPMessage(ChannelAccessVersion version,
boolean sequenceNumberIsValid,
int sequenceNumber)
Creates a
CA_PROTO_VERSION message. |
| Modifier and Type | Method and Description |
|---|---|
protected static ChannelAccessVersionUDPMessage |
deserialize(ChannelAccessMessageHeader messageHeader,
ByteSource byteSource,
boolean headerOnly)
Constructs a message from a header and a byte source.
|
boolean |
equals(java.lang.Object obj)
Tells whether the specified object represents the same message.
|
int |
getSequenceNumber()
Returns the sequence number of this message.
|
int |
hashCode()
Returns a hash code value for this message.
|
boolean |
isSequenceNumberValid()
Returns the sequence-number-is-valid flag.
|
protected void |
serialize(ByteSink byteSink,
ChannelAccessVersion version,
int maxPayloadSize,
java.nio.charset.Charset charset)
Serializes this message to a byte sink.
|
java.lang.String |
toString()
Returns a string representation of this message.
|
getVersionaddByteArrayToStringBuilder, calculatePaddingSize, getCommand, getOriginalMessageHeader, hasOriginalMessageHeader, serializeHeader, verify, verifyHeaderpublic ChannelAccessVersionUDPMessage(ChannelAccessVersion version, boolean sequenceNumberIsValid, int sequenceNumber)
CA_PROTO_VERSION message. This constructor should
be used to create a message that is supposed to be sent in any direction
using the UDP protocol. It should be the first message in each UDP
packet.version - Channel Access version supported by the sender.sequenceNumberIsValid - indicator whether the sequence number should be considered to
be valid. If this flag is set, the sequence number might be
used to calculate an estimation of the round-trip time.sequenceNumber - sequence number. This number is supposed to be incremented
with each packet sent. It might be used to calculate an
estimation of the round-trip time.public boolean isSequenceNumberValid()
getSequenceNumber() should be used to update
the round-trip time estimate.public int getSequenceNumber()
isSequenceNumberValid() returns true.protected void serialize(ByteSink byteSink, ChannelAccessVersion version, int maxPayloadSize, java.nio.charset.Charset charset)
ChannelAccessMessageChannelAccessMessageCodec.serialize in class ChannelAccessMessagebyteSink - byte sink that is used for writing the serialized data.version - protocol version to stay compatible with. This is the protocol
version of the peer the message is sent to.maxPayloadSize - maximum size of the payload.charset - encoding to use for serializing the string data (e.g. channel
names, error strings, string data-values).public boolean equals(java.lang.Object obj)
ChannelAccessMessageTells whether the specified object represents the same message.
Two messages are considered equal if they are of the same type and have the same headers and payload. For comparing the types, the actual Java type and not just the Channel Access command is compared.
equals in class ChannelAccessVersionMessageobj - reference object with which this object is compared.true if obj is a message that is of the
same type and has the same headers and payload as this message.
false if obj is null or of
a different type than this message or differs in the headers or
payload.public int hashCode()
ChannelAccessMessageReturns a hash code value for this message. This method is supported for the benefit of hash tables. The hash code is calculated as a combination of the hash codes of this messages headers (including the Channel Access command) and its payload (if present).
If two messages are equal (as indicated by the return value of
ChannelAccessMessage.equals(Object)), they also have the same hash code. However, the
fact that two messages have the same hash code does not imply that they
are equal.
hashCode in class ChannelAccessVersionMessagepublic java.lang.String toString()
ChannelAccessMessagetoString in class ChannelAccessMessageprotected static ChannelAccessVersionUDPMessage deserialize(ChannelAccessMessageHeader messageHeader, ByteSource byteSource, boolean headerOnly)
ChannelAccessMessageCodec.messageHeader - CA message header.byteSource - byte source for reading the message's payload (if any).headerOnly - if true this method will not try to read the
payload but just read the header. This is useful for reading a
message that is sent in the payload of a
ChannelAccessErrorMessage. Such a message will have
all headers but no payload (even so the payload size might be
non-zero).java.nio.BufferUnderflowException - if there is not enough data in the byte source to read the
complete payload.Copyright © 2014–2018 aquenos GmbH. All rights reserved.