Class SendMessageExpiresMessage

All Implemented Interfaces:
I2CPMessage

public class SendMessageExpiresMessage extends SendMessageMessage
Same as SendMessageMessage, but with an expiration to be passed to the router As of 0.8.4, retrofitted to use DateAndFlags. Backwards compatible.
Author:
zzz
  • Field Details

  • Constructor Details

    • SendMessageExpiresMessage

      public SendMessageExpiresMessage()
      For reading. Deprecated for writing, use 4-arg constructor
    • SendMessageExpiresMessage

      @Deprecated public SendMessageExpiresMessage(DateAndFlags options)
      Deprecated.
      use 5-arg constructor
      For writing
      Since:
      0.9.2
    • SendMessageExpiresMessage

      public SendMessageExpiresMessage(SessionId sessID, Destination dest, Payload payload, long nonce)
      For writing
      Since:
      0.9.54
    • SendMessageExpiresMessage

      public SendMessageExpiresMessage(SessionId sessID, Destination dest, Payload payload, long nonce, DateAndFlags options)
      For writing
      Since:
      0.9.54
  • Method Details

    • getExpiration

      public Date getExpiration()
      The Date object is created here, it is not cached. Use getExpirationTime() if you only need the long value.
    • getExpirationTime

      public long getExpirationTime()
      Use this instead of getExpiration().getTime()
      Since:
      0.8.4
    • setExpiration

      public void setExpiration(Date d)
    • setExpiration

      public void setExpiration(long d)
      Since:
      0.8.4
    • getFlags

      public int getFlags()
      Since:
      0.8.4
    • setFlags

      public void setFlags(int f)
      Since:
      0.8.4
    • readMessage

      public void readMessage(InputStream in, int length, int type) throws I2CPMessageException, IOException
      Read the body into the data structures
      Specified by:
      readMessage in interface I2CPMessage
      Overrides:
      readMessage in class SendMessageMessage
      Parameters:
      in - stream to read from
      length - number of bytes in the message payload
      type - type of message (should equal getType())
      Throws:
      IOException
      I2CPMessageException - if the stream doesn't contain a valid message that this class can read.
    • writeMessage

      public void writeMessage(OutputStream out) throws I2CPMessageException, IOException
      Write out the full message to the stream, including the 4 byte size and 1 byte type header. Override the parent so we can be more mem efficient
      Specified by:
      writeMessage in interface I2CPMessage
      Overrides:
      writeMessage in class SendMessageMessage
      Parameters:
      out - OutputStream
      Throws:
      IOException
      I2CPMessageException - if the current object doesn't have sufficient data to write a properly formatted message.
    • getType

      public int getType()
      Description copied from interface: I2CPMessage
      Return the unique identifier for this type of message, as specified in the network specification document under #ClientAccessLayerMessages
      Specified by:
      getType in interface I2CPMessage
      Overrides:
      getType in class SendMessageMessage
      Returns:
      unique identifier for this type of message
    • toString

      public String toString()
      Overrides:
      toString in class SendMessageMessage