net.i2p.data.i2cp

## Class BandwidthLimitsMessage

- java.lang.Object
- - net.i2p.data.DataStructureImpl
  - - net.i2p.data.i2cp.I2CPMessageImpl
    - - net.i2p.data.i2cp.BandwidthLimitsMessage

- All Implemented Interfaces:
    DataStructure, I2CPMessage

      public class BandwidthLimitsMessage
      extends I2CPMessageImpl

  Tell the other side the limits
  Author:
    zzz

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `MESSAGE_TYPE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BandwidthLimitsMessage()`
    `BandwidthLimitsMessage(int in, int out)` Let's define it this way.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `doReadMessage(InputStream in, int size)` Read in the payload part of the message (after the initial 4 byte size and 1 byte type)
    `protected byte[]` | `doWriteMessage()` Write out the payload part of the message (not including the 4 byte size and 1 byte type)
    `boolean` | `equals(Object object)`
    `int[]` | `getLimits()`
    `int` | `getType()` Return the unique identifier for this type of APIMessage, as specified in the network specification document under #ClientAccessLayerMessages
    `String` | `toString()`

    - ### Methods inherited from class net.i2p.data.i2cp.I2CPMessageImpl

      `readBytes, readMessage, readMessage, writeBytes, writeMessage`

    - ### Methods inherited from class net.i2p.data.DataStructureImpl

      `calculateHash, fromBase64, fromByteArray, read, toBase64, toByteArray`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface net.i2p.data.DataStructure

      `calculateHash, fromBase64, fromByteArray, toBase64, toByteArray`

- - ### Field Detail

    - #### MESSAGE_TYPE

          public static final int MESSAGE_TYPE

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### BandwidthLimitsMessage

          public BandwidthLimitsMessage()

    - #### BandwidthLimitsMessage

          public BandwidthLimitsMessage(int in,
                                int out)

      Let's define it this way. Leave some extra. This is only local and rarely sent so we don't care about 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

  - ### Method Detail

    - #### getLimits

          public int[] getLimits()

    - #### 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` - InputStream
        `size` - payload size
      Throws:
        `I2CPMessageException`
        `IOException`

    - #### 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`
        `IOException`

    - #### getType

          public int getType()

      Description copied from interface: `I2CPMessage`
      Return the unique identifier for this type of APIMessage, as specified in the network specification document under #ClientAccessLayerMessages
      Returns:
        unique identifier for this type of APIMessage

    - #### equals

          public boolean equals(Object object)

      Overrides:
        `equals` in class `Object`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`