Class RawMessageImpl

java.lang.Object
com.biglybt.core.networkmanager.impl.RawMessageImpl
All Implemented Interfaces:
RawMessage, Message

public class RawMessageImpl extends Object implements RawMessage
Basic raw message implementation used internally for Message-->RawMessage conversions.
  • Field Details

    • message

      private final Message message
    • payload

      private final DirectByteBuffer[] payload
    • priority

      private final int priority
    • is_no_delay

      private boolean is_no_delay
    • to_remove

      private final Message[] to_remove
  • Constructor Details

    • RawMessageImpl

      public RawMessageImpl(Message source, DirectByteBuffer[] raw_payload, int _priority, boolean _is_no_delay, Message[] _to_remove)
      Create a new raw message using the given parameters.
      Parameters:
      source - original message
      raw_payload - headers + original message data
      priority - in queue
      is_no_delay - is an urgent message
      to_remove - message types to auto-remove upon queue
  • Method Details

    • getID

      public String getID()
      Description copied from interface: Message
      Get message id.
      Specified by:
      getID in interface Message
      Returns:
      id
    • getIDBytes

      public byte[] getIDBytes()
      Specified by:
      getIDBytes in interface Message
    • getFeatureID

      public String getFeatureID()
      Description copied from interface: Message
      Get the main feature set name this message belongs to.
      Specified by:
      getFeatureID in interface Message
      Returns:
      feature id
    • getFeatureSubID

      public int getFeatureSubID()
      Description copied from interface: Message
      Get the static message sub-id for the feature.
      Specified by:
      getFeatureSubID in interface Message
      Returns:
      sub id
    • getType

      public int getType()
      Description copied from interface: Message
      Get message type.
      Specified by:
      getType in interface Message
      Returns:
      type
    • getVersion

      public byte getVersion()
      Specified by:
      getVersion in interface Message
    • getDescription

      public String getDescription()
      Description copied from interface: Message
      Get textual description of this particular message.
      Specified by:
      getDescription in interface Message
      Returns:
      description
    • getData

      public DirectByteBuffer[] getData()
      Description copied from interface: Message
      Get message payload data.
      Specified by:
      getData in interface Message
      Returns:
      message data buffers
    • deserialize

      public Message deserialize(DirectByteBuffer data, byte version) throws MessageException
      Description copied from interface: Message
      Create a new instance of this message by decoding the given byte serialization.
      Specified by:
      deserialize in interface Message
      Parameters:
      data - to deserialize
      Returns:
      decoded message instance
      Throws:
      MessageException - if the decoding process fails NOTE: Does not auto-return given direct buffer on thrown exception.
    • getRawData

      public DirectByteBuffer[] getRawData()
      Description copied from interface: RawMessage
      Get the message's raw data payload.
      Specified by:
      getRawData in interface RawMessage
      Returns:
      data payload buffers
    • getPriority

      public int getPriority()
      Description copied from interface: RawMessage
      Get the message's queue priority.
      Specified by:
      getPriority in interface RawMessage
      Returns:
      priority
    • isNoDelay

      public boolean isNoDelay()
      Description copied from interface: RawMessage
      Is this a no-delay message. No-delay messages are transmitted immediately, i.e. force-flushed out the transport.
      Specified by:
      isNoDelay in interface RawMessage
      Returns:
      true if a no-delay message
    • setNoDelay

      public void setNoDelay()
      Description copied from interface: RawMessage
      Set no-delay for this message
      Specified by:
      setNoDelay in interface RawMessage
    • messagesToRemove

      public Message[] messagesToRemove()
      Description copied from interface: RawMessage
      Get the yet-unsent message types that should be removed before queueing this message for sending.
      Specified by:
      messagesToRemove in interface RawMessage
      Returns:
      message types; null if no types
    • getBaseMessage

      public Message getBaseMessage()
      Description copied from interface: RawMessage
      Get the message this raw message is based upon.
      Specified by:
      getBaseMessage in interface RawMessage
      Returns:
      original message
    • destroy

      public void destroy()
      Description copied from interface: Message
      Destroy the message; i.e. perform cleanup actions.
      Specified by:
      destroy in interface Message