net.i2p.router.transport

## Class VMCommSystem

- java.lang.Object
- - net.i2p.router.CommSystemFacade
  - - net.i2p.router.transport.VMCommSystem

- All Implemented Interfaces:
    Service

      public class VMCommSystem
      extends CommSystemFacade

  Hacked up in-VM comm system for talking between contexts. It doesn't even generate any routerAddresses, but instead tracks the peers through a singleton. Currently, the comm system doesn't even inject any lag, though it could (later). It does honor the standard transport stats though, but not the TCP specific ones. FOR DEBUGGING AND LOCAL TESTING ONLY.

- - ### Field Summary

    - ### Fields inherited from class net.i2p.router.CommSystemFacade

      `STATUS_DIFFERENT, STATUS_HOSED, STATUS_OK, STATUS_REJECT_UNSOLICITED, STATUS_UNKNOWN`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `VMCommSystem(RouterContext context)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `processMessage(OutNetMessage msg)` The router wants us to send the given message to the peer.
    `void` | `receive(byte[] message, Hash fromPeer)` We send messages between comms as bytes so that we strip any router-local info.
    `void` | `renderStatusHTML(Writer out, String urlBase, int sortFlags)`
    `void` | `restart()` Perform a soft restart.
    `void` | `shutdown()` Instruct the service that the router is shutting down and that it should do whatever is necessary to go down gracefully.
    `void` | `startup()` Instruct the service that it should start normal operation.

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

      `countActivePeers, countActiveSendPeers, createAddresses, getCountry, getCountryName, getFramedAveragePeerClockSkew, getIP, getMedianPeerClockSkew, getMostRecentErrorMessages, getReachabilityStatus, haveHighOutboundCapacity, haveInboundCapacity, haveOutboundCapacity, isBacklogged, isEstablished, notifyReplaceAddress, queueLookup, recheckReachability, renderPeerHTML, renderStatusHTML, wasUnreachable`

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

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

- - ### Constructor Detail

    - #### VMCommSystem

          public VMCommSystem(RouterContext context)

  - ### Method Detail

    - #### processMessage

          public void processMessage(OutNetMessage msg)

      The router wants us to send the given message to the peer. Do so, or fire off the failing job.
      Specified by:
        `processMessage` in class `CommSystemFacade`

    - #### receive

          public void receive(byte[] message,
                     Hash fromPeer)

      We send messages between comms as bytes so that we strip any router-local info. For example, a router tags the # attempts to send through a leaseSet, what type of tunnel a tunnelId is bound to, etc.

    - #### shutdown

          public void shutdown()

      Description copied from interface: `Service`
      Instruct the service that the router is shutting down and that it should do whatever is necessary to go down gracefully. It should not depend on other components at this point. This call DOES block.

    - #### startup

          public void startup()

      Description copied from interface: `Service`
      Instruct the service that it should start normal operation. This call DOES block until the service is ready.

    - #### restart

          public void restart()

      Description copied from interface: `Service`
      Perform a soft restart.

    - #### renderStatusHTML

          public void renderStatusHTML(Writer out,
                              String urlBase,
                              int sortFlags)
                                throws IOException

      Overrides:
        `renderStatusHTML` in class `CommSystemFacade`
      Throws:
        `IOException`