public interface I2NPMessage
Modifier and Type | Field and Description |
---|---|
static long |
MAX_ID_VALUE
4 bytes unsigned
|
static int |
MAX_SIZE
Nominal limit, actual max is much less.
|
Modifier and Type | Method and Description |
---|---|
long |
getMessageExpiration()
Date after which the message should be dropped (and the associated uniqueId forgotten)
|
int |
getMessageSize()
How large the message is, including any checksums, i.e.
|
int |
getRawMessageSize()
How large the raw message is with the short 5 byte header
|
int |
getType()
Return the unique identifier for this type of I2NP message, as defined in
the I2NP spec
|
long |
getUniqueId() |
long |
getUniqueId(long msgIDBloomXor)
Replay resistant message ID
optionally, the caller may pass a msgIDBloomXor value, and the
return value will be Xor'ed with that value.
|
int |
readBytes(byte[] data,
int type,
int offset)
Read the body into the data structures, after the initial type byte, using
the current class's format as defined by the I2NP specification
|
int |
readBytes(byte[] data,
int type,
int offset,
int maxLen)
Read the body into the data structures, after the initial type byte, using
the current class's format as defined by the I2NP specification
|
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) |
void |
setMessageExpiration(long exp) |
void |
setUniqueId(long id) |
byte[] |
toByteArray() |
int |
toByteArray(byte[] buffer)
Write the message to the buffer, returning the new offset (NOT the length).
|
int |
toByteArray(byte[] buffer,
int off)
Write the message to the buffer, returning the new offset (NOT the length).
|
int |
toRawByteArray(byte[] buffer)
Write the message to the buffer, returning the new offset (NOT the length).
|
int |
toRawByteArrayNTCP2(byte[] buffer,
int off)
Write the message to the buffer, returning the new offset (NOT the length).
|
static final long MAX_ID_VALUE
static final int MAX_SIZE
int readBytes(byte[] data, int type, int offset) throws I2NPMessageException
data
- the datatype
- I2NP message type. If less than zero, read the type from dataoffset
- where to start
starting at type if type is < 0 (16 byte header)
starting at ID if type is >= 0 (15 byte header)I2NPMessageException
- if there is no valid messageint readBytes(byte[] data, int type, int offset, int maxLen) throws I2NPMessageException
data
- the data, may or may not include the typetype
- I2NP message type. If less than zero, read the type from dataoffset
- where to start
starting at type if type is < 0 (16 byte header)
starting at ID if type is >= 0 (15 byte header)maxLen
- read no more than this many bytes from data starting at offset, even if it is longer
This includes the type byte only if type < 0I2NPMessageException
- if there is no valid messagevoid readMessage(byte[] data, int offset, int dataSize, int type) throws I2NPMessageException
data
- data to read fromoffset
- where to start in the data arraydataSize
- how long into the data to readtype
- I2NP message typeI2NPMessageException
- if the stream doesn't contain a valid message
that this class can read.void readMessage(byte[] data, int offset, int dataSize, int type, I2NPMessageHandler handler) throws I2NPMessageException
I2NPMessageException
int getType()
long getUniqueId(long msgIDBloomXor)
long getUniqueId()
void setUniqueId(long id)
long getMessageExpiration()
void setMessageExpiration(long exp)
int getMessageSize()
int getRawMessageSize()
byte[] toByteArray()
int toByteArray(byte[] buffer)
int toByteArray(byte[] buffer, int off)
off
- the offset to start writing atint toRawByteArray(byte[] buffer)
int toRawByteArrayNTCP2(byte[] buffer, int off)
off
- the offset to start writing at