java.lang.Object
net.i2p.data.i2cp.I2CPMessageImpl
net.i2p.data.i2cp.BandwidthLimitsMessage
All Implemented Interfaces:
I2CPMessage

public class BandwidthLimitsMessageextends I2CPMessageImpl
Tell the other side the limits.
  • Field Details

    • MESSAGE_TYPE

      public static final int MESSAGE_TYPE
      Message type identifier for bandwidth limit messages.
      See Also:
    • LIMITS

      private static final int LIMITS
      Number of limit values in the message.
      See Also:
    • data

      private int[] data
      The limit values.
  • Constructor Details

    • BandwidthLimitsMessage

      public BandwidthLimitsMessage()
      Creates a new BandwidthLimitsMessage with default values.
    • BandwidthLimitsMessage

      public BandwidthLimitsMessage(int in, int out)
      BandwidthLimitsMessage with the client inbound and outbound limits.

      Slot definitions. Slots 7-15 are left undefined and wasted. This message is only local and rarely sent, so we don't care about the waste.

      0) Client inbound limit (KBps) 1) Client outbound limit (KBps) 2) Router inbound limit (KBps) 3) Router inbound burst limit (KBps) 4) Router outbound limit (KBps) 5) Router outbound burst limit (KBps) 6) Router burst time (seconds) 7-15) undefined.

      Parameters:
      in - Client inbound limit (KBps)
      out - Client outbound limit (KBps)
    • BandwidthLimitsMessage

      public BandwidthLimitsMessage(int in, int out, int rin, int rinb, int rout, int routb, int sec)
      All client and router bandwidth limits.
      Parameters:
      in - Client inbound limit (KBps)
      out - Client outbound limit (KBps)
      rin - Router inbound limit (KBps)
      rinb - Router inbound burst limit (KBps)
      rout - Router outbound limit (KBps)
      routb - Router outbound burst limit (KBps)
      sec - Router burst time (seconds)
  • Method Details

    • getLimits

      public int[] getLimits()
      The bandwidth limit slots of this message.
      Returns:
      the live array of limit slots, not a copy; slots 0-6 as defined by the constructors, slots 7-15 undefined
    • doReadMessage

      protected void doReadMessage(InputStream in, int size) throws I2CPMessageException, IOException
      Description copied from class: I2CPMessageImpl
      Read in the payload part of the message (after the initial 4 byte size and 1 byte type).
      Specified by:
      doReadMessage in class I2CPMessageImpl
      Parameters:
      in - positioned just past the 4 byte size and 1 byte type header
      size - how many payload bytes remain to be read
      Throws:
      I2CPMessageException - if the message format is invalid
      IOException - if there's an error reading from the stream
    • doWriteMessage

      protected byte[] doWriteMessage() throws I2CPMessageException, IOException
      Description copied from class: I2CPMessageImpl
      Write out the payload part of the message (not including the 4 byte size and 1 byte type).
      Specified by:
      doWriteMessage in class I2CPMessageImpl
      Returns:
      byte array
      Throws:
      I2CPMessageException - if the message cannot be written
      IOException - if there's an error writing to the stream
    • 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.
      Returns:
      unique identifier for this type of message
    • toString

      public String toString()
      Overrides:
      toString in class Object