public final class ChannelAccessReadServerMessage extends ChannelAccessReadMessage
CA_PROTO_READ message that is sent from a
server to a client. This message is sent in response to a
ChannelAccessReadClientMessage from a client.}.ChannelAccessCommand.CA_PROTO_READ,
ChannelAccessReadMessage,
ChannelAccessReadClientMessagecommand, originalMessageHeader| Constructor and Description |
|---|
ChannelAccessReadServerMessage(ChannelAccessValueType dataType,
int count,
int cid,
int operationId,
ChannelAccessGettableValue<?> value)
Creates a
CA_PROTO_READ message. |
| Modifier and Type | Method and Description |
|---|---|
protected static ChannelAccessReadServerMessage |
deserialize(ChannelAccessMessageHeader messageHeader,
ByteSource byteSource,
java.nio.charset.Charset charset)
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 |
geOperationId()
Returns the client-assigned operation ID.
|
int |
getChannelCID()
Returns the channel CID used by the client.
|
int |
getCount()
Returns the number of elements the value in this message's payload has.
|
ChannelAccessValueType |
getDataType()
Returns the data type of the value in this message's payload.
|
ChannelAccessGettableValue<?> |
getValue()
Returns the current value of the channel.
|
int |
hashCode()
Returns a hash code value for this message.
|
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.
|
protected void |
verify(ChannelAccessVersion version,
int maxPayloadSize,
java.nio.charset.Charset charset)
Verifies that this message can be serialized.
|
addByteArrayToStringBuilder, calculatePaddingSize, getCommand, getOriginalMessageHeader, hasOriginalMessageHeader, serializeHeader, verifyHeaderpublic ChannelAccessReadServerMessage(ChannelAccessValueType dataType, int count, int cid, int operationId, ChannelAccessGettableValue<?> value)
CA_PROTO_READ message. This constructor should be
used to create a message that is supposed to be sent from a server to a
client.dataType - data type of the value in the message's payload (never
null). This should always be the type that the
client requested. If the type requested by the client is not
supported by the server, an error message should be sent
instead of this message.count - number of value elements in the message's payload. This should
always be the number of elements that the client requested. If
the number requested by the client is not supported by the
server, an error message should be sent instead of this
message. Must not be negative.cid - client-assigned ID identifying the channel.operationId - client-assigned ID identifying the read request. This must be
the ID sent with the read request so that the client can
identify the request to which the reply belongs.value - current value of the channel (never null).java.lang.IllegalArgumentException - if the dataType does not match the
value's data type or count is
negative or greater than the value's number of
elements.public ChannelAccessValueType getDataType()
null if the specified data-type is unknown to this
implementation.null if the numeric
identifier cannot be mapped to a data type known by this
implementation.public int getCount()
public int getChannelCID()
public int geOperationId()
public ChannelAccessGettableValue<?> getValue()
null if the data-type sent by the server is not supported by
this implementation (getDataType() returns null).null if the data
type is not supported by this implementation. The value's data
type is the same that is returned by getDataType() and
the value's element count is equal to or greater than the number
returned by getCount().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).protected void verify(ChannelAccessVersion version, int maxPayloadSize, java.nio.charset.Charset charset)
ChannelAccessMessageChannelAccessMessageCodec.verify in class ChannelAccessMessageversion - 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 ChannelAccessMessageobj - 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 ChannelAccessMessagepublic java.lang.String toString()
ChannelAccessMessagetoString in class ChannelAccessMessageprotected static ChannelAccessReadServerMessage deserialize(ChannelAccessMessageHeader messageHeader, ByteSource byteSource, java.nio.charset.Charset charset)
ChannelAccessMessageCodec.messageHeader - CA message header.byteSource - byte source for reading the message's payload (if any).charset - encoding to use for deserializing the host name. Usually, host
names should consist of ASCII characters only, however this is
not strictly enforced by the protocol, so the encoding might
matter.headerOnly is
false).java.nio.BufferUnderflowException - if there is not enough data in the byte source to read the
complete payload.ShortPayloadException - if the message's payload size is less than the size needed
for the data type and count.Copyright © 2014–2018 aquenos GmbH. All rights reserved.