Package org.netxms.base
Class NXCPMessage
java.lang.Object
org.netxms.base.NXCPMessage
NXCP (NetXMS Communication Protocol) message
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
-
Constructor Summary
ConstructorDescriptionNXCPMessage
(byte[] nxcpMessage, EncryptionContext ectx) Create NXCPMessage from binary NXCP messageNXCPMessage
(int msgCode) Create new message with given code and ID 0.NXCPMessage
(int msgCode, long msgId) Create new message with given code and ID. -
Method Summary
Modifier and TypeMethodDescriptionbyte[]
createNXCPMessage
(boolean allowCompression) Create binary NXCP messagefindField
(long fieldId) Find field by IDbyte[]
Get data of raw message.long
byte[]
getFieldAsBinary
(long fieldId) Get field as byte arrayboolean
getFieldAsBoolean
(long fieldId) Get field as booleangetFieldAsDate
(long fieldId) Get field as dategetFieldAsDouble
(long fieldId) Get field as doublegetFieldAsInetAddress
(long fieldId) Get field as InetAddressgetFieldAsInetAddressEx
(long fieldId) Get field as InetAddressExshort
getFieldAsInt16
(long fieldId) Get field as 16 bit integerint
getFieldAsInt32
(long fieldId) Get field as 32 bit integerint[]
getFieldAsInt32Array
(long fieldId) Get field as array of 32 bit integersInteger[]
getFieldAsInt32ArrayEx
(long fieldId) Get field as array of 32 bit integerslong
getFieldAsInt64
(long fieldId) Get field as 64 bit integergetFieldAsMacAddress
(long fieldId) Get field as MacAddressgetFieldAsString
(long fieldId) Get field as stringString[]
getFieldAsStringArrayEx
(long fieldId) Get field as array of 32 bit integerslong[]
getFieldAsUInt32Array
(long fieldId) Get field as array of 32 bit integersLong[]
getFieldAsUInt32ArrayEx
(long fieldId) Get field as array of 32 bit integersgetFieldAsUUID
(long fieldId) Get field as UUID (GUID)int
Get this message's codelong
Get this message's IDgetStringListFromField
(long fieldId) Get string list from fieldgetStringListFromFields
(long baseId, long countId) Get string list from fieldsgetStringMapFromFields
(long baseId, long countId) Get string map from fieldslong
Get message timestampboolean
Return true if message contains raw (binary) databoolean
Return true if message has "compressed" and "stream" flags setboolean
Return true if message is a control messageboolean
Return true if message has "don't encrypt" flag setboolean
Return true if message has "end of file" flag setboolean
Return true if message has "end of sequence" flag setboolean
isFieldPresent
(long fieldId) Check if field with given ID present in the messageboolean
isStream()
Return true if message has "stream" flags setvoid
setBinaryData
(byte[] binaryData) Set data for raw message.void
setBinaryMessage
(boolean isRaw) Set or clear raw (binary) message flagvoid
setControl
(boolean isControl) Set or clear control message flagvoid
setControlData
(long controlData) void
setEncryptionDisabled
(boolean disabled) Set "don't encrypt" message flagvoid
setEndOfFile
(boolean isEOF) Set end of file message flagvoid
setEndOfSequence
(boolean isEOS) Set end of sequence message flagvoid
setField
(long fieldId, boolean value) Set field of type INT16 to 1 if value is true and 0 otherwise.void
setField
(long fieldId, byte[] value) Set binary field from given byte arrayvoid
setField
(long fieldId, int[] value) Set binary field from array of long integers.void
setField
(long fieldId, long[] value) Set binary field from array of long integers.void
Set field of DOUBLE typevoid
Set binary field from array of integers.void
Set binary field from array of long integers.void
Set field of UTF8-STRING typevoid
Set binary field from array of Strings.void
Set field of STRING or UTF8-STRING typevoid
setField
(long fieldId, InetAddress value) Set field of INETADDR typevoid
setField
(long fieldId, Collection<Long> value) Set binary field from collection of long integers.void
Set INT64 field from Date object to number of seconds since epoch.void
Set field of BINARY type to GUID value (byte array of length 16).void
setField
(long fieldId, InetAddressEx value) Set field of INETADDR typevoid
setField
(long fieldId, MacAddress value) Set byte field from MacAddress object value.void
setField
(NXCPMessageField src) Set field as copy of another fieldvoid
setFieldInt16
(long fieldId, int value) Set field of type INT16void
setFieldInt32
(long fieldId, int value) Set field of type INT32void
setFieldInt64
(long fieldId, long value) Set field of type INT64void
setFieldsFromStringCollection
(Collection<String> strings, long baseId, long countId) Set fields in message from string collectionvoid
setFieldsFromStringMap
(Map<String, String> strings, long baseId, long countId) Set fields in message from string mapvoid
setFieldStringCollection
(long fieldId, Collection<String> value) Set binary field from Strings collection.void
setFieldUInt32
(long fieldId, long value) Set field of type INT32 (unsigned)void
setMessageCode
(int msgCode) Set new message codevoid
setMessageId
(long msgId) Set new message IDvoid
setStream
(boolean isStream, boolean isCompressed) Set stream related message flagsvoid
setTimestamp
(long timestamp) Set message timestamptoString()
-
Field Details
-
HEADER_SIZE
public static final int HEADER_SIZE- See Also:
-
ENCRYPTION_HEADER_SIZE
public static final int ENCRYPTION_HEADER_SIZE- See Also:
-
MF_BINARY
public static final int MF_BINARY- See Also:
-
MF_END_OF_FILE
public static final int MF_END_OF_FILE- See Also:
-
MF_DONT_ENCRYPT
public static final int MF_DONT_ENCRYPT- See Also:
-
MF_END_OF_SEQUENCE
public static final int MF_END_OF_SEQUENCE- See Also:
-
MF_REVERSE_ORDER
public static final int MF_REVERSE_ORDER- See Also:
-
MF_CONTROL
public static final int MF_CONTROL- See Also:
-
MF_COMPRESSED
public static final int MF_COMPRESSED- See Also:
-
MF_STREAM
public static final int MF_STREAM- See Also:
-
-
Constructor Details
-
NXCPMessage
public NXCPMessage(int msgCode) Create new message with given code and ID 0.- Parameters:
msgCode
- message code
-
NXCPMessage
public NXCPMessage(int msgCode, long msgId) Create new message with given code and ID.- Parameters:
msgCode
- message codemsgId
- message ID
-
NXCPMessage
Create NXCPMessage from binary NXCP message- Parameters:
nxcpMessage
- NXCP messageectx
- encryption context- Throws:
IOException
- if internal byte stream error occurs (normally should not happen)NXCPException
- if message cannot be parsed
-
-
Method Details
-
getMessageCode
public int getMessageCode()Get this message's code- Returns:
- this message's code
-
setMessageCode
public void setMessageCode(int msgCode) Set new message code- Parameters:
msgCode
- new message code
-
getMessageId
public long getMessageId()Get this message's ID- Returns:
- this message's ID
-
setMessageId
public void setMessageId(long msgId) Set new message ID- Parameters:
msgId
- new message ID
-
getTimestamp
public long getTimestamp()Get message timestamp- Returns:
- the timestamp
-
setTimestamp
public void setTimestamp(long timestamp) Set message timestamp- Parameters:
timestamp
- new timestamp
-
findField
Find field by ID- Parameters:
fieldId
- field ID to find- Returns:
- field with given ID or null
-
isFieldPresent
public boolean isFieldPresent(long fieldId) Check if field with given ID present in the message- Parameters:
fieldId
- field ID- Returns:
- true if field with given ID present in the message
-
setField
Set field as copy of another field- Parameters:
src
- source field
-
setField
public void setField(long fieldId, byte[] value) Set binary field from given byte array- Parameters:
fieldId
- field IDvalue
- binary value
-
setField
public void setField(long fieldId, long[] value) Set binary field from array of long integers. Each element will be converted to network byte order and then array will be serialized as array of bytes.- Parameters:
fieldId
- field IDvalue
- value to be encoded
-
setField
public void setField(long fieldId, int[] value) Set binary field from array of long integers. Each element will be converted to network byte order and then array will be serialized as array of bytes.- Parameters:
fieldId
- field IDvalue
- value to be encoded
-
setField
Set binary field from array of long integers. Each element will be converted to network byte order and then array will be serialized as array of bytes.- Parameters:
fieldId
- field IDvalue
- value to be encoded
-
setField
Set binary field from array of integers. Each element will be converted to network byte order and then array will be serialized as array of bytes.- Parameters:
fieldId
- field IDvalue
- value to be encoded
-
setField
Set binary field from collection of long integers. Each element will be converted to network byte order and then array will be serialized as array of bytes.- Parameters:
fieldId
- field IDvalue
- value to be encoded
-
setField
Set field of UTF8-STRING type- Parameters:
fieldId
- field IDvalue
- string value
-
setField
Set field of STRING or UTF8-STRING type- Parameters:
fieldId
- field IDvalue
- string valueforceUcsEncoding
- if true, UCS2 encoding will be used (STRING type)
-
setField
Set field of DOUBLE type- Parameters:
fieldId
- field IDvalue
- floating point number value
-
setField
Set field of INETADDR type- Parameters:
fieldId
- field IDvalue
- value to encode
-
setField
Set field of INETADDR type- Parameters:
fieldId
- field IDvalue
- value to encode
-
setField
Set field of BINARY type to GUID value (byte array of length 16).- Parameters:
fieldId
- field IDvalue
- value to encode
-
setFieldInt64
public void setFieldInt64(long fieldId, long value) Set field of type INT64- Parameters:
fieldId
- field IDvalue
- integer value to encode
-
setFieldInt32
public void setFieldInt32(long fieldId, int value) Set field of type INT32- Parameters:
fieldId
- field IDvalue
- integer value to encode
-
setFieldUInt32
public void setFieldUInt32(long fieldId, long value) Set field of type INT32 (unsigned)- Parameters:
fieldId
- field IDvalue
- integer value to encode
-
setFieldInt16
public void setFieldInt16(long fieldId, int value) Set field of type INT16- Parameters:
fieldId
- field IDvalue
- integer value to encode
-
setField
public void setField(long fieldId, boolean value) Set field of type INT16 to 1 if value is true and 0 otherwise.- Parameters:
fieldId
- field IDvalue
- boolean value to encode
-
setField
Set INT64 field from Date object to number of seconds since epoch. If value is null, field will be set to 0.- Parameters:
fieldId
- field IDvalue
- Date object (can be null)
-
setField
Set binary field from array of Strings.- Parameters:
fieldId
- field IDvalue
- value to be encoded
-
setField
Set byte field from MacAddress object value. If value is null, field will not be set.- Parameters:
fieldId
- field IDvalue
- MacAddress object (can be null)
-
getFieldAsBinary
public byte[] getFieldAsBinary(long fieldId) Get field as byte array- Parameters:
fieldId
- field ID- Returns:
- field value as byte array
-
getFieldAsString
Get field as string- Parameters:
fieldId
- field ID- Returns:
- field value as string
-
getFieldAsDouble
Get field as double- Parameters:
fieldId
- field id- Returns:
- field value as double
-
getFieldAsInt16
public short getFieldAsInt16(long fieldId) Get field as 16 bit integer- Parameters:
fieldId
- field id- Returns:
- field value as 16 bit integer
-
getFieldAsInt32
public int getFieldAsInt32(long fieldId) Get field as 32 bit integer- Parameters:
fieldId
- field id- Returns:
- field value as 32 bit integer
-
getFieldAsInt64
public long getFieldAsInt64(long fieldId) Get field as 64 bit integer- Parameters:
fieldId
- field id- Returns:
- field value as 64 bit integer
-
getFieldAsInetAddress
Get field as InetAddress- Parameters:
fieldId
- field id- Returns:
- field value as IP address
-
getFieldAsMacAddress
Get field as MacAddress- Parameters:
fieldId
- field id- Returns:
- field value as MAC address
-
getFieldAsInetAddressEx
Get field as InetAddressEx- Parameters:
fieldId
- field ID- Returns:
- field value as IP address
-
getFieldAsUUID
Get field as UUID (GUID)- Parameters:
fieldId
- field ID- Returns:
- field value as UUID
-
getFieldAsUInt32Array
public long[] getFieldAsUInt32Array(long fieldId) Get field as array of 32 bit integers- Parameters:
fieldId
- field ID- Returns:
- field value as array of long integers
-
getFieldAsUInt32ArrayEx
Get field as array of 32 bit integers- Parameters:
fieldId
- field ID- Returns:
- field value as array of Long objects
-
getFieldAsInt32Array
public int[] getFieldAsInt32Array(long fieldId) Get field as array of 32 bit integers- Parameters:
fieldId
- field ID- Returns:
- field value as array of long integers
-
getFieldAsInt32ArrayEx
Get field as array of 32 bit integers- Parameters:
fieldId
- field ID- Returns:
- field value as array of Long objects
-
getFieldAsBoolean
public boolean getFieldAsBoolean(long fieldId) Get field as boolean- Parameters:
fieldId
- field ID- Returns:
- field value as boolean
-
getFieldAsDate
Get field as date- Parameters:
fieldId
- field ID- Returns:
- field value as Date object
-
createNXCPMessage
Create binary NXCP message- Parameters:
allowCompression
- true if message compression is allowed- Returns:
- byte stream ready to send
- Throws:
IOException
- if write to underlying data output stream fails
-
getBinaryData
public byte[] getBinaryData()Get data of raw message. Will return null if message is not a raw message.- Returns:
- Binary data of raw message
-
setBinaryData
public void setBinaryData(byte[] binaryData) Set data for raw message.- Parameters:
binaryData
- data to set
-
isBinaryMessage
public boolean isBinaryMessage()Return true if message contains raw (binary) data- Returns:
- raw message flag
-
setBinaryMessage
public void setBinaryMessage(boolean isRaw) Set or clear raw (binary) message flag- Parameters:
isRaw
- true if message contains raw (binary) data
-
isControlMessage
public boolean isControlMessage()Return true if message is a control message- Returns:
- control message flag
-
setControl
public void setControl(boolean isControl) Set or clear control message flag- Parameters:
isControl
- true to set control message flag
-
isEndOfFile
public boolean isEndOfFile()Return true if message has "end of file" flag set- Returns:
- "end of file" flag
-
setEndOfFile
public void setEndOfFile(boolean isEOF) Set end of file message flag- Parameters:
isEOF
- true to set end of file message flag
-
isEndOfSequence
public boolean isEndOfSequence()Return true if message has "end of sequence" flag set- Returns:
- "end of file" flag
-
setEndOfSequence
public void setEndOfSequence(boolean isEOS) Set end of sequence message flag- Parameters:
isEOS
- true to set end of sequence message flag
-
isEncryptionDisabled
public boolean isEncryptionDisabled()Return true if message has "don't encrypt" flag set- Returns:
- "don't encrypr" flag
-
setEncryptionDisabled
public void setEncryptionDisabled(boolean disabled) Set "don't encrypt" message flag- Parameters:
disabled
- true to set "don't encrypt" message flag
-
getControlData
public long getControlData()- Returns:
- the controlData
-
setControlData
public void setControlData(long controlData) - Parameters:
controlData
- the controlData to set
-
isStream
public boolean isStream()Return true if message has "stream" flags set- Returns:
- "compressed stream" flag
-
isCompressedStream
public boolean isCompressedStream()Return true if message has "compressed" and "stream" flags set- Returns:
- "compressed stream" flag
-
setStream
public void setStream(boolean isStream, boolean isCompressed) Set stream related message flags- Parameters:
isStream
- true to set "stream" message flagisCompressed
- true to set "compressed" message flag (ignored if isStream is false)
-
setFieldsFromStringCollection
Set fields in message from string collection- Parameters:
strings
- strings collectionbaseId
- base (first element) field IDcountId
- ID of field containing number of elements
-
setFieldStringCollection
Set binary field from Strings collection.- Parameters:
fieldId
- field IDvalue
- value to be encoded
-
setFieldsFromStringMap
Set fields in message from string map- Parameters:
strings
- string mapbaseId
- base (first element) field IDcountId
- ID of field containing number of elements
-
getStringListFromFields
Get string list from fields- Parameters:
baseId
- base (first element) field IDcountId
- ID of field containing number of elements- Returns:
- list of strings
-
getStringListFromField
Get string list from field- Parameters:
fieldId
- field ID- Returns:
- list of strings
-
getFieldAsStringArrayEx
Get field as array of 32 bit integers- Parameters:
fieldId
- field ID- Returns:
- field value as array of Long objects
-
getStringMapFromFields
Get string map from fields- Parameters:
baseId
- base (first element) field IDcountId
- ID of field containing number of elements- Returns:
- map of strings
-
toString
-