net.i2p.data.i2np

## Class TunnelBuildReplyMessage

- java.lang.Object
- - net.i2p.data.DataStructureImpl
  - - net.i2p.data.i2np.I2NPMessageImpl
    - - net.i2p.data.i2np.TunnelBuildReplyMessage

All Implemented Interfaces:
  DataStructure, I2NPMessage

Direct Known Subclasses:
  VariableTunnelBuildReplyMessage

    public class TunnelBuildReplyMessage
    extends I2NPMessageImpl

Transmitted from the new outbound endpoint to the creator through a reply tunnel

### Nested Class Summary

### Nested classes/interfaces inherited from class net.i2p.data.i2np.I2NPMessageImpl

`I2NPMessageImpl.Builder`

### Field Summary

Fields
`protected ByteArray[]` `_records`
`static int` `MAX_RECORD_COUNT`
`static int` `MESSAGE_TYPE`
`protected int` `RECORD_COUNT`
`static int` `RECORD_SIZE`

### Fields inherited from class net.i2p.data.i2np.I2NPMessageImpl

`_context, CHECKSUM_LENGTH, DEFAULT_EXPIRATION_MS`

### Fields inherited from interface net.i2p.data.i2np.I2NPMessage

`MAX_ID_VALUE, MAX_SIZE`

### Constructor Summary

Constructors
`` `TunnelBuildReplyMessage(I2PAppContext context)`
`protected` `TunnelBuildReplyMessage(I2PAppContext context, int records)`

### Method Summary

Methods
`protected int` `calculateWrittenLength()` calculate the message body's length (not including the header and footer
`ByteArray` `getRecord(int index)`
`int` `getRecordCount()`
`int` `getType()` Return the unique identifier for this type of I2NP message, as defined in the I2NP spec
`void` `readMessage(byte[] data, int offset, int dataSize, int type)` Read the body into the data structures, after the initial type byte and the uniqueId / expiration, using the current class's format as defined by the I2NP specification
`void` `setRecord(int index, ByteArray record)`
`String` `toString()`
`protected int` `writeMessageBody(byte[] out, int curIndex)` write the message body to the output array, starting at the given index.

### Methods inherited from class net.i2p.data.i2np.I2NPMessageImpl

`createMessage, fromRawByteArray, getMessageExpiration, getMessageSize, getRawMessageSize, getUniqueId, readBytes, readBytes, readBytes, readMessage, registerBuilder, setMessageExpiration, setUniqueId, toByteArray, toByteArray, toRawByteArray, writeBytes`

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

`calculateHash, fromBase64, fromByteArray, read, toBase64`

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

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

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

`calculateHash, fromBase64, fromByteArray, toBase64`

### Field Detail

#### _records

    protected ByteArray[] _records

#### RECORD_COUNT

    protected int RECORD_COUNT

#### MAX_RECORD_COUNT

    public static final int MAX_RECORD_COUNT

See Also:
  Constant Field Values

#### MESSAGE_TYPE

    public static final int MESSAGE_TYPE

See Also:
  Constant Field Values

#### RECORD_SIZE

    public static final int RECORD_SIZE

See Also:
  Constant Field Values

### Constructor Detail

#### TunnelBuildReplyMessage

    public TunnelBuildReplyMessage(I2PAppContext context)

#### TunnelBuildReplyMessage

    protected TunnelBuildReplyMessage(I2PAppContext context,
                           int records)

Since:
  0.7.12

### Method Detail

#### setRecord

    public void setRecord(int index,
                 ByteArray record)

#### getRecord

    public ByteArray getRecord(int index)

#### getRecordCount

    public int getRecordCount()

Since:
  0.7.12

#### calculateWrittenLength

    protected int calculateWrittenLength()

Description copied from class: `I2NPMessageImpl`
calculate the message body's length (not including the header and footer

Specified by:
  `calculateWrittenLength` in class `I2NPMessageImpl`

#### getType

    public int getType()

Description copied from interface: `I2NPMessage`
Return the unique identifier for this type of I2NP message, as defined in the I2NP spec

#### readMessage

    public void readMessage(byte[] data,
                   int offset,
                   int dataSize,
                   int type)
                     throws I2NPMessageException,
                            IOException

Description copied from interface: `I2NPMessage`
Read the body into the data structures, after the initial type byte and the uniqueId / expiration, using the current class's format as defined by the I2NP specification

Parameters:
  `data` - data to read from
  `offset` - where to start in the data array
  `dataSize` - how long into the data to read
  `type` - I2NP message type
Throws:
  `I2NPMessageException` - if the stream doesn't contain a valid message that this class can read.
  `IOException` - if there is a problem reading from the stream

#### writeMessageBody

    protected int writeMessageBody(byte[] out,
                       int curIndex)
                            throws I2NPMessageException

Description copied from class: `I2NPMessageImpl`
write the message body to the output array, starting at the given index.

Specified by:
  `writeMessageBody` in class `I2NPMessageImpl`
Returns:
  the index into the array after the last byte written
Throws:
  `I2NPMessageException`

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`