## Uses of Class
net.i2p.router.OutNetMessage

- Packages that use OutNetMessage
  Package | Description
  --- | ---
  net.i2p.router | The I2P router application handles the I2P network communication.
  net.i2p.router.networkdb.kademlia |
  net.i2p.router.transport | The transport system allows the usage of communication layers that are below I2P in the stack, on which I2P messages are sent.
  net.i2p.router.transport.ntcp | The NTCP transport allows passing I2P messages on top of TCP.
  net.i2p.router.transport.udp | The UDP transport (also known as 'SSU transport') allows passing I2P messages on top of UDP.

- - ### Uses of OutNetMessage in net.i2p.router

    Methods in net.i2p.router with parameters of type OutNetMessage
    Modifier and Type | Method and Description
    --- | ---
    `void` | OutNetMessagePool.`add(OutNetMessage msg)` Add a new message to the pool
    `abstract void` | CommSystemFacade.`processMessage(OutNetMessage msg)`
    `void` | MessageHistory.`replyTimedOut(OutNetMessage sentMessage)` The message wanted a reply but no reply came in the time expected

  - ### Uses of OutNetMessage in net.i2p.router.networkdb.kademlia

    Fields in net.i2p.router.networkdb.kademlia declared as OutNetMessage
    Modifier and Type | Field and Description
    --- | ---
    `(package private) OutNetMessage` | SingleSearchJob.`_onm`

  - ### Uses of OutNetMessage in net.i2p.router.transport

    Methods in net.i2p.router.transport that return OutNetMessage
    Modifier and Type | Method and Description
    --- | ---
    `OutNetMessage` | TransportImpl.`getNextMessage()` Nonblocking call to pull the next outbound message off the queue.
    `OutNetMessage` | OutboundMessageRegistry.`registerPending(MessageSelector replySelector, ReplyJob onReply, Job onTimeout, int timeoutMs)`

    Methods in net.i2p.router.transport with parameters of type OutNetMessage
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | TransportImpl.`afterSend(OutNetMessage msg, boolean sendSuccessful)` The transport is done sending this message
    `protected void` | TransportImpl.`afterSend(OutNetMessage msg, boolean sendSuccessful, boolean allowRequeue)` The transport is done sending this message
    `protected void` | TransportImpl.`afterSend(OutNetMessage msg, boolean sendSuccessful, boolean allowRequeue, long msToSend)` The transport is done sending this message.
    `protected void` | TransportImpl.`afterSend(OutNetMessage msg, boolean sendSuccessful, long msToSend)` The transport is done sending this message
    `TransportBid` | CommSystemFacadeImpl.`getBid(OutNetMessage msg)`
    `TransportBid` | TransportManager.`getBid(OutNetMessage msg)`
    `List<TransportBid>` | CommSystemFacadeImpl.`getBids(OutNetMessage msg)`
    `List<TransportBid>` | TransportManager.`getBids(OutNetMessage msg)`
    `(package private) static void` | GetBidsJob.`getBids(RouterContext context, CommSystemFacadeImpl facade, OutNetMessage msg)`
    `TransportBid` | CommSystemFacadeImpl.`getNextBid(OutNetMessage msg)`
    `TransportBid` | TransportManager.`getNextBid(OutNetMessage msg)`
    `void` | CommSystemFacadeImpl.`processMessage(OutNetMessage msg)` Send the message out
    `void` | VMCommSystem.`processMessage(OutNetMessage msg)` The router wants us to send the given message to the peer.
    `void` | OutboundMessageRegistry.`registerPending(OutNetMessage msg)`
    `void` | OutboundMessageRegistry.`registerPending(OutNetMessage msg, boolean allowEmpty)`
    `void` | TransportImpl.`send(OutNetMessage msg)` Asynchronously send the message as requested in the message and, if the send is successful, queue up any msg.getOnSendJob job, and register it with the OutboundMessageRegistry (if it has a reply selector).
    `void` | Transport.`send(OutNetMessage msg)` Asynchronously send the message as requested in the message and, if the send is successful, queue up any msg.getOnSendJob job, and register it with the OutboundMessageRegistry (if it has a reply selector).
    `void` | OutboundMessageRegistry.`unregisterPending(OutNetMessage msg)`

    Constructors in net.i2p.router.transport with parameters of type OutNetMessage
    Constructor and Description
    `GetBidsJob(RouterContext ctx, CommSystemFacadeImpl facade, OutNetMessage msg)`

  - ### Uses of OutNetMessage in net.i2p.router.transport.ntcp

    Methods in net.i2p.router.transport.ntcp with parameters of type OutNetMessage
    Modifier and Type | Method and Description
    --- | ---
    `void` | NTCPSendFinisher.`add(OutNetMessage msg)`
    `void` | NTCPTransport.`afterSend(OutNetMessage msg, boolean sendSuccessful, boolean allowRequeue, long msToSend)`
    `void` | NTCPConnection.`send(OutNetMessage msg)` toss the message onto the connection's send queue
    `(package private) void` | NTCPTransport.`sendComplete(OutNetMessage msg)` queue up afterSend call, which can take some time w/ jobs, etc

  - ### Uses of OutNetMessage in net.i2p.router.transport.udp

    Methods in net.i2p.router.transport.udp that return OutNetMessage
    Modifier and Type | Method and Description
    --- | ---
    `OutNetMessage` | OutboundMessageState.`getMessage()`
    `OutNetMessage` | TimedWeightedPriorityMessageQueue.`getNext(long blockUntil)` Grab the next message out of the next queue.
    `OutNetMessage` | MessageQueue.`getNext(long blockUntil)` Get the next message, blocking until one is found or the expiration reached.
    `OutNetMessage` | OutboundEstablishState.`getNextQueuedMessage()`

    Methods in net.i2p.router.transport.udp with parameters of type OutNetMessage
    Modifier and Type | Method and Description
    --- | ---
    `void` | TimedWeightedPriorityMessageQueue.`add(OutNetMessage message)`
    `void` | MessageQueue.`add(OutNetMessage message)` Add on a new message to the queue
    `void` | OutboundMessageFragments.`add(OutNetMessage msg)` Add a new message to the active pool
    `void` | OutboundEstablishState.`addMessage(OutNetMessage msg)`
    `void` | EstablishmentManager.`establish(OutNetMessage msg)` Send the message to its specified recipient by establishing a connection with them and sending it off.
    `void` | UDPTransport.`failed(OutNetMessage msg, String reason)`
    `void` | TimedWeightedPriorityMessageQueue.FailedListener.`failed(OutNetMessage msg, String reason)`
    `boolean` | OutboundMessageState.`initialize(OutNetMessage msg)`
    `boolean` | OutboundMessageState.`initialize(OutNetMessage m, I2NPMessage msg)`
    `void` | UDPTransport.`send(OutNetMessage msg)`