net.i2p.router.message

## Class OutboundClientMessageOneShotJob

- java.lang.Object
- - net.i2p.router.JobImpl
  - - net.i2p.router.message.OutboundClientMessageOneShotJob

- All Implemented Interfaces:
    Job

      public class OutboundClientMessageOneShotJob
      extends JobImpl

  Send a client message out a random outbound tunnel and into a random inbound tunnel on the target leaseSet. This also bundles the sender's leaseSet and a DeliveryStatusMessage (for ACKing any sessionTags used in the garlic).

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `BUNDLE_PROBABILITY` Allow the override of the frequency of bundling the reply info in with a message.
    `static String` | `BUNDLE_REPLY_LEASESET` If the client's config specifies shouldBundleReplyInfo=true, messages sent from that client to any peers will probabalistically include the sending destination's current LeaseSet (allowing the recipient to reply without having to do a full netDb lookup).
    `static String` | `OVERALL_TIMEOUT_MS_PARAM` final timeout (in milliseconds) that the outbound message will fail in.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `OutboundClientMessageOneShotJob(RouterContext ctx, ClientMessage msg)` Send the sucker

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `getName()` Descriptive name of the task
    `static void` | `init(RouterContext ctx)` call once only
    `void` | `runJob()` Actually perform the task.

    - ### Methods inherited from class net.i2p.router.JobImpl

      `dropped, getAddedBy, getContext, getJobId, getMadeReadyOn, getTiming, madeReady, requeue, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### OVERALL_TIMEOUT_MS_PARAM

          public static final String OVERALL_TIMEOUT_MS_PARAM

      final timeout (in milliseconds) that the outbound message will fail in. This can be overridden in the router.config or the client's session config (the client's session config takes precedence)
      See Also:
        Constant Field Values

    - #### BUNDLE_REPLY_LEASESET

          public static final String BUNDLE_REPLY_LEASESET

      If the client's config specifies shouldBundleReplyInfo=true, messages sent from that client to any peers will probabalistically include the sending destination's current LeaseSet (allowing the recipient to reply without having to do a full netDb lookup). This should improve performance during the initial negotiations, but is not necessary for communication that isn't bidirectional.
      See Also:
        Constant Field Values

    - #### BUNDLE_PROBABILITY

          public static final String BUNDLE_PROBABILITY

      Allow the override of the frequency of bundling the reply info in with a message. The client app can specify bundleReplyInfoProbability=80 (for instance) and that will cause the router to include the sender's leaseSet with 80% of the messages sent to the peer.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### OutboundClientMessageOneShotJob

          public OutboundClientMessageOneShotJob(RouterContext ctx,
                                         ClientMessage msg)

      Send the sucker

  - ### Method Detail

    - #### init

          public static void init(RouterContext ctx)

      call once only

    - #### getName

          public String getName()

      Description copied from interface: `Job`
      Descriptive name of the task

    - #### runJob

          public void runJob()

      Description copied from interface: `Job`
      Actually perform the task. This call blocks until the Job is complete.