net.i2p.data.i2cp
Class HostReplyMessage

java.lang.Object
  extended by net.i2p.data.DataStructureImpl
      extended by net.i2p.data.i2cp.I2CPMessageImpl
          extended by net.i2p.data.i2cp.HostReplyMessage
All Implemented Interfaces:
Serializable, DataStructure, I2CPMessage

public class HostReplyMessage
extends I2CPMessageImpl

Response to HostLookupMessage. Replaces DestReplyMessage.

Since:
0.9.11
See Also:
Serialized Form

Field Summary
static int MESSAGE_TYPE
           
static int RESULT_FAILURE
          generic fail, other codes TBD
static int RESULT_SUCCESS
           
 
Constructor Summary
HostReplyMessage()
           
HostReplyMessage(SessionId id, Destination d, long reqID)
          A message with RESULT_SUCCESS and a non-null Destination.
HostReplyMessage(SessionId id, int failureCode, long reqID)
          A message with a failure code and no Destination.
 
Method Summary
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)
 Destination getDestination()
           
 long getReqID()
           
 int getResultCode()
           
 SessionId getSessionId()
           
 int getType()
          Return the unique identifier for this type of message, as specified in the network specification document under #ClientAccessLayerMessages
 SessionId sessionId()
          Return the SessionId for this message.
 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, equals, 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

RESULT_SUCCESS

public static final int RESULT_SUCCESS
See Also:
Constant Field Values

RESULT_FAILURE

public static final int RESULT_FAILURE
generic fail, other codes TBD

See Also:
Constant Field Values
Constructor Detail

HostReplyMessage

public HostReplyMessage()

HostReplyMessage

public HostReplyMessage(SessionId id,
                        Destination d,
                        long reqID)
A message with RESULT_SUCCESS and a non-null Destination.

Parameters:
d - non-null
reqID - 0 to 2**32 - 1

HostReplyMessage

public HostReplyMessage(SessionId id,
                        int failureCode,
                        long reqID)
A message with a failure code and no Destination.

Parameters:
failureCode - 1-255
reqID - from the HostLookup 0 to 2**32 - 1
Method Detail

getSessionId

public SessionId getSessionId()

sessionId

public SessionId sessionId()
Return the SessionId for this message.

Specified by:
sessionId in interface I2CPMessage
Overrides:
sessionId in class I2CPMessageImpl
Returns:
null always. Extending classes with a SessionId must override.
Since:
0.9.21

getReqID

public long getReqID()
Returns:
0 to 2**32 - 1

getResultCode

public int getResultCode()
Returns:
0 on success, 1-255 on failure

getDestination

public Destination getDestination()
Returns:
non-null only if result code is zero

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