net.i2p.data.i2np
Class TunnelGatewayMessage
java.lang.Object
net.i2p.data.DataStructureImpl
net.i2p.data.i2np.I2NPMessageImpl
net.i2p.data.i2np.FastI2NPMessageImpl
net.i2p.data.i2np.TunnelGatewayMessage
- All Implemented Interfaces:
- DataStructure, I2NPMessage
public class TunnelGatewayMessage
- extends FastI2NPMessageImpl
Defines the message sent between one tunnel's endpoint and another's gateway.
format: { tunnelId, sizeof(i2npMessage.toByteArray()), i2npMessage.toByteArray() }
Method Summary |
protected int |
calculateWrittenLength()
calculate the message body's length (not including the header and footer |
boolean |
equals(Object object)
|
I2NPMessage |
getMessage()
Warning, at the IBGW, where the message was read in,
this will be an UnknownI2NPMessage. |
TunnelId |
getTunnelId()
|
int |
getType()
Return the unique identifier for this type of I2NP message, as defined in
the I2NP spec |
int |
hashCode()
|
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 |
readMessage(byte[] data,
int offset,
int dataSize,
int type,
I2NPMessageHandler handler)
Note that for efficiency at the IBGW, this does not fully deserialize the included
I2NP Message. |
void |
setMessage(I2NPMessage msg)
|
void |
setTunnelId(TunnelId id)
|
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, registerBuilder, setMessageExpiration, setUniqueId, toByteArray, toRawByteArray |
MESSAGE_TYPE
public static final int MESSAGE_TYPE
- See Also:
- Constant Field Values
TunnelGatewayMessage
public TunnelGatewayMessage(I2PAppContext context)
getTunnelId
public TunnelId getTunnelId()
setTunnelId
public void setTunnelId(TunnelId id)
- Throws:
IllegalStateException
- if id previously set, to protect saved checksum
getMessage
public I2NPMessage getMessage()
- Warning, at the IBGW, where the message was read in,
this will be an UnknownI2NPMessage.
If you need a real message class, use UnknownI2NPMessage.convert().
Note that if you change the expiration on the embedded message it will
mess up the checksum of this message, so don't do that.
setMessage
public void setMessage(I2NPMessage msg)
- Throws:
IllegalStateException
- if msg previously set, to protect saved checksum
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
writeMessageBody
protected int writeMessageBody(byte[] out,
int curIndex)
throws I2NPMessageException
- 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
readMessage
public void readMessage(byte[] data,
int offset,
int dataSize,
int type)
throws I2NPMessageException
- 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 fromoffset
- where to start in the data arraydataSize
- how long into the data to readtype
- I2NP message type
- Throws:
I2NPMessageException
- if the stream doesn't contain a valid message
that this class can read.
readMessage
public void readMessage(byte[] data,
int offset,
int dataSize,
int type,
I2NPMessageHandler handler)
throws I2NPMessageException
- Note that for efficiency at the IBGW, this does not fully deserialize the included
I2NP Message. It just puts it in an UnknownI2NPMessage.
- Specified by:
readMessage
in interface I2NPMessage
- Overrides:
readMessage
in class I2NPMessageImpl
- Parameters:
handler
- unused, may be null
- Throws:
I2NPMessageException
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
hashCode
public int hashCode()
- Overrides:
hashCode
in class Object
equals
public boolean equals(Object object)
- Overrides:
equals
in class Object
toString
public String toString()
- Overrides:
toString
in class Object