Uses of Interface
net.i2p.data.i2np.I2NPMessage

Packages that use I2NPMessage
net.i2p.data.i2np This package defines the low-level messages sent between routers, called the Invisible Internet Network Protocol (I2NP). 
net.i2p.router The I2P router application handles the I2P network communication. 
net.i2p.router.message Creates and parses garlic messages. 
net.i2p.router.networkdb A couple of classes, but most things are in kademlia. 
net.i2p.router.networkdb.kademlia The network database, including implementation of floodfills. 
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.udp The UDP transport (also known as 'SSU transport') allows passing I2P messages on top of UDP. 
net.i2p.router.tunnel All the work of managing locally created and participating tunnels, creating and handling tunnel messages, and their encryption. 
 

Uses of I2NPMessage in net.i2p.data.i2np
 

Classes in net.i2p.data.i2np that implement I2NPMessage
 class DatabaseLookupMessage
          Defines the message a router sends to another router to search for a key in the network database.
 class DatabaseSearchReplyMessage
          Defines the message a router sends to another router in response to a search (DatabaseFindNearest or DatabaseLookup) when it doesn't have the value, specifying what routers it would search.
 class DatabaseStoreMessage
          Defines the message a router sends to another router to test the network database reachability, as well as the reply message sent back.
 class DataMessage
          Defines a message containing arbitrary bytes of data This is what goes in a GarlicClove.
 class DeliveryStatusMessage
          Defines the message sent back in reply to a message when requested, containing the private ack id.
 class FastI2NPMessageImpl
          Ignore, but save, the SHA-256 checksum in the full 16-byte header when read in.
 class GarlicMessage
          Defines the wrapped garlic message
 class I2NPMessageImpl
          Defines the base message implementation.
 class TunnelBuildMessage
          The basic build message with 8 records.
 class TunnelBuildMessageBase
          Base for TBM, TBRM, VTBM, VTBRM Retrofitted over them.
 class TunnelBuildReplyMessage
          The basic build reply message with 8 records.
 class TunnelDataMessage
          Defines the message sent between routers as part of the tunnel delivery The tunnel ID is changed in-place by TunnelParticipant.send(), so we can't reuse the checksum on output, but we still subclass FastI2NPMessageImpl so we don't verify the checksum on input...
 class TunnelGatewayMessage
          Defines the message sent between one tunnel's endpoint and another's gateway.
 class UnknownI2NPMessage
          This is similar to DataMessage or GarlicMessage but with a variable message type.
 class VariableTunnelBuildMessage
          Variable number of records.
 class VariableTunnelBuildReplyMessage
          Transmitted from the new outbound endpoint to the creator through a reply tunnel.
 

Methods in net.i2p.data.i2np that return I2NPMessage
 I2NPMessage I2NPMessageImpl.Builder.build(I2PAppContext ctx)
          instantiate a new I2NPMessage to be populated shortly
 I2NPMessage UnknownI2NPMessage.convert()
          Attempt to convert this message to a known message class.
static I2NPMessage I2NPMessageImpl.createMessage(I2PAppContext context, int type)
          Yes, this is fairly ugly, but its the only place it ever happens.
static I2NPMessage I2NPMessageImpl.fromRawByteArray(I2PAppContext ctx, byte[] buffer, int offset, int len, I2NPMessageHandler handler)
          Read the message with a short 5-byte header.
 I2NPMessage GarlicClove.getData()
           
 I2NPMessage TunnelGatewayMessage.getMessage()
          Warning, at the IBGW, where the message was read in, this will be an UnknownI2NPMessage.
 I2NPMessage I2NPMessageHandler.lastRead()
          clear the last message read from a byte array with an offset
 I2NPMessage I2NPMessageHandler.readMessage(byte[] data)
          Read an I2NPMessage from the byte array and return the fully populated object.
 I2NPMessage I2NPMessageHandler.readMessage(InputStream in)
          Deprecated. use the byte array method to avoid an extra copy if you have it
 

Methods in net.i2p.data.i2np with parameters of type I2NPMessage
 void I2NPMessageReader.I2NPMessageEventListener.messageReceived(I2NPMessageReader reader, I2NPMessage message, long msToRead, int bytesRead)
          Notify the listener that a message has been received from the given reader
 void GarlicClove.setData(I2NPMessage msg)
           
 void TunnelGatewayMessage.setMessage(I2NPMessage msg)
           
 

Uses of I2NPMessage in net.i2p.router
 

Methods in net.i2p.router that return I2NPMessage
 I2NPMessage OutNetMessage.getMessage()
          Specifies the message to be sent.
 

Methods in net.i2p.router with parameters of type I2NPMessage
 int InNetMessagePool.add(I2NPMessage messageBody, RouterIdentity fromRouter, Hash fromRouterHash)
          Add a new message to the pool.
 Job HandlerJobBuilder.createJob(I2NPMessage receivedMessage, RouterIdentity from, Hash fromHash)
          Create a new job to handle the received message.
 void MessageHistory.droppedOtherMessage(I2NPMessage message, Hash from)
          We received another message we weren't waiting for and don't know how to handle
 int InNetMessagePool.handleReplies(I2NPMessage messageBody)
           
 boolean MessageSelector.isMatch(I2NPMessage message)
          Returns true if the received message matches the selector.
 void ReplyJob.setMessage(I2NPMessage message)
          Called by InNetMessagePool when an I2NPMessage matching a MessageSelector registered with the OutboundMessageRegistry is received
 

Constructors in net.i2p.router with parameters of type I2NPMessage
OutNetMessage(RouterContext context, I2NPMessage msg, long expiration, int priority, RouterInfo target)
          Standard constructor
 

Uses of I2NPMessage in net.i2p.router.message
 

Methods in net.i2p.router.message that return I2NPMessage
 I2NPMessage PayloadGarlicConfig.getPayload()
           
 

Methods in net.i2p.router.message with parameters of type I2NPMessage
 Job GarlicMessageHandler.createJob(I2NPMessage receivedMessage, RouterIdentity from, Hash fromHash)
           
 void HandleGarlicMessageJob.handleClove(DeliveryInstructions instructions, I2NPMessage data)
           
 void GarlicMessageReceiver.CloveReceiver.handleClove(DeliveryInstructions instructions, I2NPMessage data)
           
 void PayloadGarlicConfig.setPayload(I2NPMessage message)
          Specify the I2NP message to be sent - if this is set, no other cloves can be included in this block
 

Constructors in net.i2p.router.message with parameters of type I2NPMessage
SendMessageDirectJob(RouterContext ctx, I2NPMessage message, Hash toPeer, int timeoutMs, int priority)
           
SendMessageDirectJob(RouterContext ctx, I2NPMessage message, Hash toPeer, Job onSend, ReplyJob onSuccess, Job onFail, MessageSelector selector, int timeoutMs, int priority)
           
SendMessageDirectJob(RouterContext ctx, I2NPMessage message, Hash toPeer, ReplyJob onSuccess, Job onFail, MessageSelector selector, int timeoutMs, int priority)
           
 

Uses of I2NPMessage in net.i2p.router.networkdb
 

Methods in net.i2p.router.networkdb with parameters of type I2NPMessage
protected  void HandleDatabaseLookupMessageJob.sendMessage(I2NPMessage message, Hash toPeer, TunnelId replyTunnel)
           
 

Uses of I2NPMessage in net.i2p.router.networkdb.kademlia
 

Methods in net.i2p.router.networkdb.kademlia that return I2NPMessage
protected  I2NPMessage SearchJob.buildMessage(TunnelId replyTunnelId, Hash replyGateway, long expiration, RouterInfo peer)
          Build the database search message
protected  I2NPMessage ExploreJob.buildMessage(TunnelId replyTunnelId, Hash replyGateway, long expiration, RouterInfo peer)
          Build the database search message, but unlike the normal searches, we're more explicit in what we /dont/ want.
 

Methods in net.i2p.router.networkdb.kademlia with parameters of type I2NPMessage
 Job FloodfillDatabaseStoreMessageHandler.createJob(I2NPMessage receivedMessage, RouterIdentity from, Hash fromHash)
           
 Job FloodfillDatabaseLookupMessageHandler.createJob(I2NPMessage receivedMessage, RouterIdentity from, Hash fromHash)
           
 boolean IterativeLookupSelector.isMatch(I2NPMessage message)
          This only returns true for DSMs, not for DSRMs.
 boolean SearchMessageSelector.isMatch(I2NPMessage message)
           
 boolean FloodOnlyLookupSelector.isMatch(I2NPMessage message)
           
 boolean StoreMessageSelector.isMatch(I2NPMessage message)
           
 void FloodOnlyLookupMatchJob.setMessage(I2NPMessage message)
           
 void SearchUpdateReplyFoundJob.setMessage(I2NPMessage message)
           
(package private) static MessageWrapper.WrappedMessage MessageWrapper.wrap(RouterContext ctx, I2NPMessage m, Hash from, RouterInfo to)
          Garlic wrap a message from a client or this router, destined for a router, to hide the contents from the OBEP.
static GarlicMessage MessageWrapper.wrap(RouterContext ctx, I2NPMessage m, MessageWrapper.OneTimeSession session)
          Garlic wrap a message from nobody, destined for an unknown router, to hide the contents from the IBGW.
(package private) static GarlicMessage MessageWrapper.wrap(RouterContext ctx, I2NPMessage m, RouterInfo to)
          Garlic wrap a message from nobody, destined for a router, to hide the contents from the OBEP.
static GarlicMessage MessageWrapper.wrap(RouterContext ctx, I2NPMessage m, SessionKey encryptKey, SessionTag encryptTag)
          Garlic wrap a message from nobody, destined for an unknown router, to hide the contents from the IBGW.
 

Uses of I2NPMessage in net.i2p.router.transport
 

Methods in net.i2p.router.transport with parameters of type I2NPMessage
 List<OutNetMessage> OutboundMessageRegistry.getOriginalMessages(I2NPMessage message)
          Retrieve all messages that are waiting for the specified message.
 void TransportManager.messageReceived(I2NPMessage message, RouterIdentity fromRouter, Hash fromRouterHash)
          Message received
 void TransportEventListener.messageReceived(I2NPMessage message, RouterIdentity fromRouter, Hash fromRouterHash)
          Message received
 void TransportImpl.messageReceived(I2NPMessage inMsg, RouterIdentity remoteIdent, Hash remoteIdentHash, long msToReceive, int bytesReceived)
          Message received from the I2NPMessageReader - send it to the listener
 

Uses of I2NPMessage in net.i2p.router.transport.udp
 

Methods in net.i2p.router.transport.udp with parameters of type I2NPMessage
 void UDPTransport.messageReceived(I2NPMessage inMsg, RouterIdentity remoteIdent, Hash remoteIdentHash, long msToReceive, int bytesReceived)
          infinite loop public RouterAddress getCurrentAddress() { if (needsRebuild()) rebuildExternalAddress(false); return super.getCurrentAddress(); }
(package private)  void UDPTransport.send(I2NPMessage msg, PeerState peer)
          "injected" message from the EstablishmentManager
 

Constructors in net.i2p.router.transport.udp with parameters of type I2NPMessage
OutboundMessageState(I2PAppContext context, I2NPMessage msg, PeerState peer)
          "injected" message from the establisher.
 

Uses of I2NPMessage in net.i2p.router.tunnel
 

Methods in net.i2p.router.tunnel with parameters of type I2NPMessage
 void PumpedTunnelGateway.add(I2NPMessage msg, Hash toRouter, TunnelId toTunnel)
          Add a message to be sent down the tunnel, either sending it now (perhaps coallesced with other pending messages) or after a brief pause (_flushFrequency).
 void TunnelGatewayZeroHop.add(I2NPMessage msg, Hash toRouter, TunnelId toTunnel)
          Add a message to be sent down the tunnel (immediately forwarding it to the InboundMessageDistributor or OutboundMessageDistributor, as necessary).
 void ThrottledPumpedTunnelGateway.add(I2NPMessage msg, Hash toRouter, TunnelId toTunnel)
          Possibly drop a message due to bandwidth before adding it to the preprocessor queue.
 void TunnelGateway.add(I2NPMessage msg, Hash toRouter, TunnelId toTunnel)
          Add a message to be sent down the tunnel, either sending it now (perhaps coallesced with other pending messages) or after a brief pause (_flushFrequency).
 void TunnelDispatcher.dispatchOutbound(I2NPMessage msg, TunnelId outboundTunnel, Hash targetPeer)
          We are the outbound tunnel gateway (we created it), so wrap up this message with instructions to be forwarded to the targetPeer when it reaches the endpoint.
 void TunnelDispatcher.dispatchOutbound(I2NPMessage msg, TunnelId outboundTunnel, TunnelId targetTunnel, Hash targetPeer)
          We are the outbound tunnel gateway (we created it), so wrap up this message with instructions to be forwarded to the targetTunnel on the targetPeer when it reaches the endpoint.
 void InboundMessageDistributor.distribute(I2NPMessage msg, Hash target)
           
 void OutboundMessageDistributor.distribute(I2NPMessage msg, Hash target)
           
 void InboundMessageDistributor.distribute(I2NPMessage msg, Hash target, TunnelId tunnel)
           
 void OutboundMessageDistributor.distribute(I2NPMessage msg, Hash target, TunnelId tunnel)
           
 void InboundMessageDistributor.handleClove(DeliveryInstructions instructions, I2NPMessage data)
          Handle a clove removed from the garlic message
 void FragmentHandler.DefragmentedReceiver.receiveComplete(I2NPMessage msg, Hash toRouter, TunnelId toTunnel)
          Receive a fully formed I2NPMessage out of the tunnel
 

Constructors in net.i2p.router.tunnel with parameters of type I2NPMessage
OutboundGatewayMessage(I2NPMessage message, Hash toRouter, TunnelId toTunnel)
           
PendingGatewayMessage(I2NPMessage message, Hash toRouter, TunnelId toTunnel)