public class DatabaseLookupMessage extends FastI2NPMessageImpl
Modifier and Type | Class and Description |
---|---|
static class |
DatabaseLookupMessage.Type |
I2NPMessageImpl.Builder
Modifier and Type | Field and Description |
---|---|
static int |
MESSAGE_TYPE |
_checksum, _hasChecksum
_context, _expiration, _log, _uniqueId, CHECKSUM_LENGTH, DEFAULT_EXPIRATION_MS, HEADER_LENGTH
MAX_ID_VALUE, MAX_SIZE
Constructor and Description |
---|
DatabaseLookupMessage(I2PAppContext context) |
DatabaseLookupMessage(I2PAppContext context,
boolean locallyCreated) |
Modifier and Type | Method and Description |
---|---|
void |
addDontIncludePeer(Hash peer)
Add to the set.
|
void |
addDontIncludePeers(Collection<Hash> peers)
Add to the set.
|
protected int |
calculateWrittenLength()
calculate the message body's length (not including the header and footer
|
boolean |
equals(Object object) |
Set<Hash> |
getDontIncludePeers()
Set of peers that a lookup reply should NOT include.
|
Hash |
getFrom()
Contains the router who requested this lookup
|
SessionKey |
getReplyKey()
The included session key or null if unset
|
SessionTag |
getReplyTag()
The included session tag or null if unset
|
TunnelId |
getReplyTunnel()
Contains the tunnel ID a reply should be sent to
|
Hash |
getSearchKey()
Defines the key being searched for
|
DatabaseLookupMessage.Type |
getSearchType()
Defines the type of data being searched for.
|
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 |
setDontIncludePeers(Collection<Hash> peers)
Replace the dontInclude set with this set.
|
void |
setFrom(Hash from) |
void |
setReplySession(SessionKey encryptKey,
SessionTag encryptTag)
Only worthwhile if sending reply via tunnel
|
void |
setReplyTunnel(TunnelId replyTunnel) |
void |
setSearchKey(Hash key) |
void |
setSearchType(DatabaseLookupMessage.Type type)
Defines the type of data being searched for.
|
static boolean |
supportsEncryptedReplies(RouterInfo to)
Does this router support encrypted replies?
|
String |
toString() |
protected int |
writeMessageBody(byte[] out,
int curIndex)
write the message body to the output array, starting at the given index.
|
readBytes, readBytes, readBytes, toByteArray, toByteArrayWithSavedChecksum, writeBytes
createMessage, fromRawByteArray, getMessageExpiration, getMessageSize, getRawMessageSize, getUniqueId, readBytes, readMessage, registerBuilder, setMessageExpiration, setUniqueId, toByteArray, toRawByteArray
calculateHash, fromBase64, fromByteArray, read, toBase64
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
calculateHash, fromBase64, fromByteArray, toBase64
public static final int MESSAGE_TYPE
public DatabaseLookupMessage(I2PAppContext context)
public DatabaseLookupMessage(I2PAppContext context, boolean locallyCreated)
locallyCreated
- ignoredpublic Hash getSearchKey()
public void setSearchKey(Hash key)
IllegalStateException
- if key previously set, to protect saved checksumpublic DatabaseLookupMessage.Type getSearchType()
public void setSearchType(DatabaseLookupMessage.Type type)
type
- non-nullpublic Hash getFrom()
public void setFrom(Hash from)
IllegalStateException
- if from previously set, to protect saved checksumpublic TunnelId getReplyTunnel()
public void setReplyTunnel(TunnelId replyTunnel)
IllegalStateException
- if tunnel previously set, to protect saved checksumpublic static boolean supportsEncryptedReplies(RouterInfo to)
to
- null OKpublic SessionKey getReplyKey()
public SessionTag getReplyTag()
public void setReplySession(SessionKey encryptKey, SessionTag encryptTag)
encryptKey
- non-nullencryptTag
- non-nullIllegalStateException
- if key or tag previously set, to protect saved checksumpublic Set<Hash> getDontIncludePeers()
public void setDontIncludePeers(Collection<Hash> peers)
peers
- may be nullpublic void addDontIncludePeer(Hash peer)
peer
- non-nullpublic void addDontIncludePeers(Collection<Hash> peers)
peers
- non-nullpublic void readMessage(byte[] data, int offset, int dataSize, int type) throws I2NPMessageException
I2NPMessage
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.protected int calculateWrittenLength()
I2NPMessageImpl
calculateWrittenLength
in class I2NPMessageImpl
protected int writeMessageBody(byte[] out, int curIndex) throws I2NPMessageException
I2NPMessageImpl
writeMessageBody
in class I2NPMessageImpl
I2NPMessageException
public int getType()
I2NPMessage