net.i2p.data.i2cp

## Class MessageStatusMessage

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

All Implemented Interfaces:
  DataStructure, I2CPMessage

    public class MessageStatusMessage
    extends I2CPMessageImpl

Defines the message a client sends to a router when destroying existing session.

Author:
  jrandom

### Field Summary

Fields
`static int` `MESSAGE_TYPE`
`static int` `STATUS_AVAILABLE`
`static int` `STATUS_SEND_ACCEPTED`
`static int` `STATUS_SEND_BEST_EFFORT_FAILURE` unused
`static int` `STATUS_SEND_BEST_EFFORT_SUCCESS` unused
`static int` `STATUS_SEND_GUARANTEED_FAILURE`
`static int` `STATUS_SEND_GUARANTEED_SUCCESS`

### Constructor Summary

Constructors
Constructor and Description
`MessageStatusMessage()`

### Method Summary

Methods
`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)`
`long` `getMessageId()`
`long` `getNonce()`
`long` `getSessionId()`
`long` `getSize()`
`int` `getStatus()`
`static String` `getStatusString(int status)`
`int` `getType()` Return the unique identifier for this type of APIMessage, as specified in the network specification document under #ClientAccessLayerMessages
`void` `setMessageId(long id)`
`void` `setNonce(long nonce)`
`void` `setSessionId(long id)`
`void` `setSize(long size)`
`void` `setStatus(int status)`
`String` `toString()`
`void` `writeMessage(OutputStream out)` Override to reduce mem churn

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

`readBytes, readMessage, readMessage, writeBytes`

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

#### STATUS_AVAILABLE

    public static final int STATUS_AVAILABLE

See Also:
  Constant Field Values

#### STATUS_SEND_ACCEPTED

    public static final int STATUS_SEND_ACCEPTED

See Also:
  Constant Field Values

#### STATUS_SEND_BEST_EFFORT_SUCCESS

    public static final int STATUS_SEND_BEST_EFFORT_SUCCESS

unused

See Also:
  Constant Field Values

#### STATUS_SEND_BEST_EFFORT_FAILURE

    public static final int STATUS_SEND_BEST_EFFORT_FAILURE

unused

See Also:
  Constant Field Values

#### STATUS_SEND_GUARANTEED_SUCCESS

    public static final int STATUS_SEND_GUARANTEED_SUCCESS

See Also:
  Constant Field Values

#### STATUS_SEND_GUARANTEED_FAILURE

    public static final int STATUS_SEND_GUARANTEED_FAILURE

See Also:
  Constant Field Values

### Constructor Detail

#### MessageStatusMessage

    public MessageStatusMessage()

### Method Detail

#### getSessionId

    public long getSessionId()

#### setSessionId

    public void setSessionId(long id)

#### getStatus

    public int getStatus()

#### setStatus

    public void setStatus(int status)

#### getMessageId

    public long getMessageId()

#### setMessageId

    public void setMessageId(long id)

#### getSize

    public long getSize()

#### setSize

    public void setSize(long size)

#### getNonce

    public long getNonce()

#### setNonce

    public void setNonce(long nonce)

#### getStatusString

    public static final String getStatusString(int status)

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

#### writeMessage

    public void writeMessage(OutputStream out)
                      throws I2CPMessageException,
                             IOException

Override to reduce mem churn

Specified by:
  `writeMessage` in interface `I2CPMessage`
Overrides:
  `writeMessage` in class `I2CPMessageImpl`
Parameters:
  `out` - OutputStream
Throws:
  `IOException`
  `I2CPMessageException` - if the current object doesn't have sufficient data to write a properly formatted message.

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