net.i2p.router
Class OutNetMessage

java.lang.Object
  extended bynet.i2p.router.OutNetMessage

public class OutNetMessage
extends java.lang.Object

Wrap up an outbound I2NP message, along with the information associated with its delivery and jobs to be fired off if particular events occur.


Constructor Summary
OutNetMessage(RouterContext context)
           
 
Method Summary
 void beginSend()
           
 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.
 boolean equals(java.lang.Object obj)
           
 long getCreated()
           
 java.lang.Exception getCreatedBy()
           
 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.
 java.util.Set getFailedTransports()
          not thread safe - dont fail transports and iterate over this at the same time
 long getLifetime()
           
 I2NPMessage getMessage()
          Specifies the message to be sent
 int getMessageData(byte[] outBuffer)
           
 long getMessageId()
           
 long getMessageSize()
           
 java.lang.String getMessageType()
           
 Job getOnFailedReplyJob()
          If the Message selector is specified but it doesn't find a reply before its expiration passes, this job is enqueued.
 Job getOnFailedSendJob()
          If the router could not be reached or the expiration passed, this job is enqueued.
 ReplyJob getOnReplyJob()
          If the MessageSelector detects a reply, this job is enqueued
 Job getOnSendJob()
          After the message is successfully passed to the router specified, the given job is enqueued.
 int getPriority()
          Specify the priority of the message, where higher numbers are higher priority.
 MessageSelector getReplySelector()
          Defines a MessageSelector to find a reply to this message.
 long getSendBegin()
          when did the sending process begin
 RouterInfo getTarget()
          Specifies the router to which the message should be delivered.
 java.lang.Long getTimestamp(java.lang.String eventName)
           
 java.util.Map getTimestamps()
           
 int hashCode()
           
 void setExpiration(long expiration)
           
 void setMessage(I2NPMessage msg)
           
 void setOnFailedReplyJob(Job job)
           
 void setOnFailedSendJob(Job job)
           
 void setOnReplyJob(ReplyJob job)
           
 void setOnSendJob(Job job)
           
 void setPriority(int priority)
           
 void setReplySelector(MessageSelector selector)
           
 void setTarget(RouterInfo target)
           
 long timestamp(java.lang.String eventName)
          Stamp the message's progress
 java.lang.String toString()
           
 void transportFailed(java.lang.String transportStyle)
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

OutNetMessage

public OutNetMessage(RouterContext context)
Method Detail

timestamp

public long timestamp(java.lang.String eventName)
Stamp the message's progress

Parameters:
eventName - what occurred
Returns:
how long this message has been 'in flight'

getTimestamps

public java.util.Map getTimestamps()

getTimestamp

public java.lang.Long getTimestamp(java.lang.String eventName)

getCreatedBy

public java.lang.Exception getCreatedBy()

getTarget

public RouterInfo getTarget()
Specifies the router to which the message should be delivered.


setTarget

public void setTarget(RouterInfo target)

getMessage

public I2NPMessage getMessage()
Specifies the message to be sent


setMessage

public void setMessage(I2NPMessage msg)

getMessageType

public java.lang.String getMessageType()

getMessageId

public long getMessageId()

getMessageSize

public long getMessageSize()

getMessageData

public int getMessageData(byte[] outBuffer)

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.


setPriority

public void setPriority(int priority)

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.


setExpiration

public void setExpiration(long expiration)

getOnSendJob

public Job getOnSendJob()
After the message is successfully passed to the router specified, the given job is enqueued.


setOnSendJob

public void setOnSendJob(Job job)

getOnFailedSendJob

public Job getOnFailedSendJob()
If the router could not be reached or the expiration passed, this job is enqueued.


setOnFailedSendJob

public void setOnFailedSendJob(Job job)

getOnReplyJob

public ReplyJob getOnReplyJob()
If the MessageSelector detects a reply, this job is enqueued


setOnReplyJob

public void setOnReplyJob(ReplyJob job)

getOnFailedReplyJob

public Job getOnFailedReplyJob()
If the Message selector is specified but it doesn't find a reply before its expiration passes, this job is enqueued.


setOnFailedReplyJob

public void setOnFailedReplyJob(Job job)

getReplySelector

public MessageSelector getReplySelector()
Defines a MessageSelector to find a reply to this message.


setReplySelector

public void setReplySelector(MessageSelector selector)

transportFailed

public void transportFailed(java.lang.String transportStyle)

getFailedTransports

public java.util.Set getFailedTransports()
not thread safe - dont fail transports and iterate over this at the same time


getSendBegin

public long getSendBegin()
when did the sending process begin


beginSend

public void beginSend()

getCreated

public long getCreated()

getLifetime

public long getLifetime()

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

public java.lang.String toString()

hashCode

public int hashCode()

equals

public boolean equals(java.lang.Object obj)