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 void setField(long fieldId, Collection<Long> value)
      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 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)
    • 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: