Package net.i2p.router
Class OutNetMessage
java.lang.Object
net.i2p.router.OutNetMessage
Wrap up an outbound I2NP message, along with the information associated with its
delivery and jobs to be fired off if particular events occur.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
static final int
static final int
Priorities, higher is higher priority.static final int
static final int
static final int
static final int
static final int
may be adjusted +/- 25 for outbound trafficstatic final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
-
Constructor Summary
ConstructorDescriptionOutNetMessage
(RouterContext context) Null msg and target, zero expiration (used in OutboundMessageRegistry only)OutNetMessage
(RouterContext context, I2NPMessage msg, long expiration, int priority, RouterInfo target) Standard constructor -
Method Summary
Modifier and TypeMethodDescriptionvoid
void
We've done what we need to do with the data from this message, though we may keep the object around for a while to use its ID, jobs, etc.void
drop()
For CDQlong
Deprecated.long
For CDQlong
Specify the # ms since the epoch after which if the message has not been sent the OnFailedSend job should be fired and the message should be removed from the pool.int
As of 0.9.55, changed from a Set to a Listlong
time since the message was createdSpecifies the message to be sent.int
getMessageData
(byte[] outBuffer) Copies the message data to outbuffer.long
int
How large the message is, including the full 16 byte header.For debugging only.int
If the Message selector is specified but it doesn't find a reply before its expiration passes, this job is enqueued.If the router could not be reached or the expiration passed, this job is enqueued.If the MessageSelector detects a reply, this job is enqueuedAfter the message is successfully passed to the router specified, the given job is enqueued.int
Specify the priority of the message, where higher numbers are higher priority.Defines a MessageSelector to find a reply to this message.long
when did the sending process beginlong
time the transport tries to send the message (including any queueing)long
For CDPQSpecifies the router to which the message should be delivered.getTimestamp
(String eventName) Deprecated.unusedDeprecated.unusedvoid
setEnqueueTime
(long now) For CDQvoid
setOnFailedReplyJob
(Job job) void
setOnFailedSendJob
(Job job) void
setOnReplyJob
(ReplyJob job) void
setOnSendJob
(Job job) void
setReplySelector
(MessageSelector selector) void
setSeqNum
(long num) For CDPQvoid
Stamp the message's progress.toString()
int
transportFailed
(String transportStyle) As of 0.9.55, returns the previous number of failed transports.
-
Field Details
-
PRIORITY_HIGHEST
public static final int PRIORITY_HIGHESTPriorities, higher is higher priority.- Since:
- 0.9.3
- See Also:
-
PRIORITY_MY_BUILD_REQUEST
public static final int PRIORITY_MY_BUILD_REQUEST- See Also:
-
PRIORITY_MY_NETDB_LOOKUP
public static final int PRIORITY_MY_NETDB_LOOKUP- See Also:
-
PRIORITY_MY_NETDB_STORE
public static final int PRIORITY_MY_NETDB_STORE- See Also:
-
PRIORITY_EXPLORATORY
public static final int PRIORITY_EXPLORATORY- See Also:
-
PRIORITY_MY_DATA
public static final int PRIORITY_MY_DATAmay be adjusted +/- 25 for outbound traffic- See Also:
-
PRIORITY_HIS_BUILD_REQUEST
public static final int PRIORITY_HIS_BUILD_REQUEST- See Also:
-
PRIORITY_BUILD_REPLY
public static final int PRIORITY_BUILD_REPLY- See Also:
-
PRIORITY_NETDB_REPLY
public static final int PRIORITY_NETDB_REPLY- See Also:
-
PRIORITY_HIS_NETDB_STORE
public static final int PRIORITY_HIS_NETDB_STORE- See Also:
-
PRIORITY_NETDB_FLOOD
public static final int PRIORITY_NETDB_FLOOD- See Also:
-
PRIORITY_PARTICIPATING
public static final int PRIORITY_PARTICIPATING- See Also:
-
PRIORITY_MY_NETDB_STORE_LOW
public static final int PRIORITY_MY_NETDB_STORE_LOW- See Also:
-
PRIORITY_NETDB_EXPLORE
public static final int PRIORITY_NETDB_EXPLORE- See Also:
-
PRIORITY_NETDB_HARVEST
public static final int PRIORITY_NETDB_HARVEST- See Also:
-
PRIORITY_LOWEST
public static final int PRIORITY_LOWEST- See Also:
-
-
Constructor Details
-
OutNetMessage
Null msg and target, zero expiration (used in OutboundMessageRegistry only)- Since:
- 0.9.9
-
OutNetMessage
public OutNetMessage(RouterContext context, I2NPMessage msg, long expiration, int priority, RouterInfo target) Standard constructor- Parameters:
msg
- generally non-nulltarget
- generally non-null- Since:
- 0.9.9
-
-
Method Details
-
timestamp
Stamp the message's progress. Only useful if log level is INFO or DEBUG- Parameters:
eventName
- what occurred
-
getTimestamps
Deprecated.unused -
getTimestamp
Deprecated.unused -
getCreatedBy
Deprecated.- Returns:
- null always
-
getTarget
Specifies the router to which the message should be delivered. Generally non-null but may be null in special cases. -
getMessage
Specifies the message to be sent. Generally non-null but may be null in special cases. -
getMessageType
For debugging only.- Returns:
- the simple class name
-
getMessageTypeId
public int getMessageTypeId() -
getMessageId
public long getMessageId() -
getMessageSize
public int getMessageSize()How large the message is, including the full 16 byte header. Transports with different header sizes should adjust. -
getMessageData
public int getMessageData(byte[] outBuffer) Copies the message data to outbuffer. Used only by VM Comm System.- Returns:
- the length, or -1 if message is null
-
getPriority
public int getPriority()Specify the priority of the message, where higher numbers are higher priority. Higher priority messages should be delivered before lower priority ones, though some algorithm may be used to avoid starvation.- Specified by:
getPriority
in interfacePQEntry
-
getExpiration
public long getExpiration()Specify the # ms since the epoch after which if the message has not been sent the OnFailedSend job should be fired and the message should be removed from the pool. If the message has already been sent, this expiration is ignored and the expiration from the ReplySelector is used. -
getOnSendJob
After the message is successfully passed to the router specified, the given job is enqueued. -
setOnSendJob
-
getOnFailedSendJob
If the router could not be reached or the expiration passed, this job is enqueued. -
setOnFailedSendJob
-
getOnReplyJob
If the MessageSelector detects a reply, this job is enqueued -
setOnReplyJob
-
getOnFailedReplyJob
If the Message selector is specified but it doesn't find a reply before its expiration passes, this job is enqueued. -
setOnFailedReplyJob
-
getReplySelector
Defines a MessageSelector to find a reply to this message. -
setReplySelector
-
transportFailed
As of 0.9.55, returns the previous number of failed transports. -
getFailedTransportCount
public int getFailedTransportCount()- Since:
- 0.9.55
-
getFailedTransports
As of 0.9.55, changed from a Set to a List -
getSendBegin
public long getSendBegin()when did the sending process begin -
beginSend
public void beginSend() -
getCreated
public long getCreated() -
getLifetime
public long getLifetime()time since the message was created -
getSendTime
public long getSendTime()time the transport tries to send the message (including any queueing) -
setEnqueueTime
public void setEnqueueTime(long now) For CDQ- Specified by:
setEnqueueTime
in interfaceCDQEntry
- Since:
- 0.9.3
-
getEnqueueTime
public long getEnqueueTime()For CDQ- Specified by:
getEnqueueTime
in interfaceCDQEntry
- Since:
- 0.9.3
-
drop
public void drop()For CDQ -
setSeqNum
public void setSeqNum(long num) For CDPQ -
getSeqNum
public long getSeqNum()For CDPQ -
discardData
public void discardData()We've done what we need to do with the data from this message, though we may keep the object around for a while to use its ID, jobs, etc. -
toString
-