Class NXCPMessage

java.lang.Object
org.netxms.base.NXCPMessage

public class NXCPMessage extends Object
NXCP (NetXMS Communication Protocol) message
  • Field Details

  • 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 code
      msgId - message ID
    • NXCPMessage

      public NXCPMessage(byte[] nxcpMessage, EncryptionContext ectx) throws IOException, NXCPException
      Create NXCPMessage from binary NXCP message
      Parameters:
      nxcpMessage - NXCP message
      ectx - 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

      public NXCPMessageField findField(long fieldId)
      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

      public void setField(NXCPMessageField src)
      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 ID
      value - 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 ID
      value - 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 ID
      value - value to be encoded
    • 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 ID
      value - value to be encoded
    • setField

      public void setField(long fieldId, Integer[] value)
      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 ID
      value - value to be encoded
    • setField

      public <T extends Number> void setField(long fieldId, Collection<T> value)
      Set binary field from collection of integers. Each element will be converted to 32 bit integer in network byte order and then array will be serialized as array of bytes.
      Parameters:
      fieldId - field ID
      value - value to be encoded
    • setField

      public void setField(long fieldId, String value)
      Set field of UTF8-STRING type
      Parameters:
      fieldId - field ID
      value - string value
    • setField

      public void setField(long fieldId, String value, boolean forceUcsEncoding)
      Set field of STRING or UTF8-STRING type
      Parameters:
      fieldId - field ID
      value - string value
      forceUcsEncoding - if true, UCS2 encoding will be used (STRING type)
    • setField

      public void setField(long fieldId, Double value)
      Set field of DOUBLE type
      Parameters:
      fieldId - field ID
      value - floating point number value
    • setField

      public void setField(long fieldId, InetAddress value)
      Set field of INETADDR type
      Parameters:
      fieldId - field ID
      value - value to encode
    • setField

      public void setField(long fieldId, InetAddressEx value)
      Set field of INETADDR type
      Parameters:
      fieldId - field ID
      value - value to encode
    • setField

      public void setField(long fieldId, UUID value)
      Set field of BINARY type to GUID value (byte array of length 16).
      Parameters:
      fieldId - field ID
      value - value to encode
    • setFieldInt64

      public void setFieldInt64(long fieldId, long value)
      Set field of type INT64
      Parameters:
      fieldId - field ID
      value - integer value to encode
    • setFieldInt32

      public void setFieldInt32(long fieldId, int value)
      Set field of type INT32
      Parameters:
      fieldId - field ID
      value - integer value to encode
    • setFieldUInt32

      public void setFieldUInt32(long fieldId, long value)
      Set field of type INT32 (unsigned)
      Parameters:
      fieldId - field ID
      value - integer value to encode
    • setFieldInt16

      public void setFieldInt16(long fieldId, int value)
      Set field of type INT16
      Parameters:
      fieldId - field ID
      value - 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 ID
      value - boolean value to encode
    • setField

      public void setField(long fieldId, Date value)
      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 ID
      value - Date object (can be null)
    • setField

      public void setField(long fieldId, String[] value)
      Set binary field from array of Strings.
      Parameters:
      fieldId - field ID
      value - value to be encoded
    • setField

      public void setField(long fieldId, MacAddress value)
      Set byte field from MacAddress object value. If value is null, field will not be set.
      Parameters:
      fieldId - field ID
      value - MacAddress object (can be null)
    • setFieldJson

      public void setFieldJson(long fieldId, Object value)
      Set field of UTF8-STRING type
      Parameters:
      fieldId - field ID
      value - string value
    • getFieldAsBinary

      public byte[] getFieldAsBinary(long fieldId)
      Get field as byte array
      Parameters:
      fieldId - field ID
      Returns:
      field value as byte array
    • getFieldAsString

      public String getFieldAsString(long fieldId)
      Get field as string
      Parameters:
      fieldId - field ID
      Returns:
      field value as string
    • getFieldAsDouble

      public Double getFieldAsDouble(long fieldId)
      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

      public InetAddress getFieldAsInetAddress(long fieldId)
      Get field as InetAddress
      Parameters:
      fieldId - field id
      Returns:
      field value as IP address
    • getFieldAsMacAddress

      public MacAddress getFieldAsMacAddress(long fieldId)
      Get field as MacAddress
      Parameters:
      fieldId - field id
      Returns:
      field value as MAC address
    • getFieldAsInetAddressEx

      public InetAddressEx getFieldAsInetAddressEx(long fieldId)
      Get field as InetAddressEx
      Parameters:
      fieldId - field ID
      Returns:
      field value as IP address
    • getFieldAsUUID

      public UUID getFieldAsUUID(long fieldId)
      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

      public Long[] getFieldAsUInt32ArrayEx(long fieldId)
      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

      public Integer[] getFieldAsInt32ArrayEx(long fieldId)
      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

      public Date getFieldAsDate(long fieldId)
      Get field as date
      Parameters:
      fieldId - field ID
      Returns:
      field value as Date object
    • createNXCPMessage

      public byte[] createNXCPMessage(boolean allowCompression) throws IOException
      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 flag
      isCompressed - true to set "compressed" message flag (ignored if isStream is false)
    • setFieldsFromStringCollection

      public void setFieldsFromStringCollection(Collection<String> strings, long baseId, long countId)
      Set fields in message from string collection
      Parameters:
      strings - strings collection
      baseId - base (first element) field ID
      countId - ID of field containing number of elements
    • setFieldStringCollection

      public void setFieldStringCollection(long fieldId, Collection<String> value)
      Set binary field from Strings collection.
      Parameters:
      fieldId - field ID
      value - value to be encoded
    • setFieldsFromStringMap

      public void setFieldsFromStringMap(Map<String,String> strings, long baseId, long countId)
      Set fields in message from string map
      Parameters:
      strings - string map
      baseId - base (first element) field ID
      countId - ID of field containing number of elements
    • getStringListFromFields

      public List<String> getStringListFromFields(long baseId, long countId)
      Get string list from fields
      Parameters:
      baseId - base (first element) field ID
      countId - ID of field containing number of elements
      Returns:
      list of strings
    • getStringListFromField

      public List<String> getStringListFromField(long fieldId)
      Get string list from field
      Parameters:
      fieldId - field ID
      Returns:
      list of strings
    • getFieldAsStringArrayEx

      public String[] getFieldAsStringArrayEx(long fieldId)
      Get field as array of 32 bit integers
      Parameters:
      fieldId - field ID
      Returns:
      field value as array of Long objects
    • getStringMapFromFields

      public Map<String,String> getStringMapFromFields(long baseId, long countId)
      Get string map from fields
      Parameters:
      baseId - base (first element) field ID
      countId - ID of field containing number of elements
      Returns:
      map of strings
    • toString

      public String toString()
      Overrides:
      toString in class Object
      See Also: