Packages that use I2CPMessage
Package
Description
Internal implementation of the I2P client SDK - the client side of the Invisible Internet Client Protocol (I2CP), separating implementation from the interfaces in
net.i2p.client. The Invisible Internet Client Protocol (I2CP) allows applications simplified access to I2P network without requiring them to deal with the issues involved with the Invisible Internet Network Protocol (I2NP).
Internal communication between a router and a client running in the same JVM, using queues instead of socket-based I2CP (the Invisible Internet Client Protocol), to avoid the serialization and socket overhead.
Router-side implementation of the Invisible Internet Client Protocol (I2CP): client sessions over plain or TLS sockets, message delivery, and lease and tunnel management on behalf of clients.
Uses of I2CPMessage in net.i2p.client.impl
Fields in net.i2p.client.impl with type parameters of type I2CPMessageModifier and TypeFieldDescriptionprivate final BlockingQueue<I2CPMessage> ClientWriterRunner._messagesToWriteMessages waiting to reach the router.Methods in net.i2p.client.impl with parameters of type I2CPMessageModifier and TypeMethodDescriptionvoidClientWriterRunner.addMessage(I2CPMessage msg) Add this message to the writer's queue.voidBWLimitsMessageHandler.handleMessage(I2CPMessage message, I2PSessionImpl session) voidDestReplyMessageHandler.handleMessage(I2CPMessage message, I2PSessionImpl session) voidDisconnectMessageHandler.handleMessage(I2CPMessage message, I2PSessionImpl session) voidHostReplyMessageHandler.handleMessage(I2CPMessage message, I2PSessionImpl session) Handle an incoming I2CP message.voidI2CPMessageHandler.handleMessage(I2CPMessage message, I2PSessionImpl session) Handle an I2CP message.voidMessagePayloadMessageHandler.handleMessage(I2CPMessage message, I2PSessionImpl session) Handle an incoming I2CP message.voidMessageStatusMessageHandler.handleMessage(I2CPMessage message, I2PSessionImpl session) Handle an incoming I2CP message.voidRequestLeaseSetMessageHandler.handleMessage(I2CPMessage message, I2PSessionImpl session) Handle an incoming I2CP message.protected voidRequestLeaseSetMessageHandler.handleMessage(I2CPMessage message, I2PSessionImpl session, int attempt) Handle an incoming I2CP message, tracking how many prompt re-runs a transient signing failure has already scheduled for this request.protected voidRequestVariableLeaseSetMessageHandler.handleMessage(I2CPMessage message, I2PSessionImpl session, int attempt) Handle an incoming I2CP message, tracking how many prompt re-runs a transient signing failure has already scheduled for this request.voidSessionStatusMessageHandler.handleMessage(I2CPMessage message, I2PSessionImpl session) Handle an incoming I2CP message.voidSetDateMessageHandler.handleMessage(I2CPMessage message, I2PSessionImpl session) Handle an incoming I2CP message.voidI2PSessionImpl.messageReceived(I2CPMessageReader reader, I2CPMessage message) The I2CPMessageEventListener callback.(package private) voidRequestLeaseSetMessageHandler.scheduleSignRetry(I2CPMessage message, I2PSessionImpl session, int attempt) Schedule a prompt re-run of a request whose signing failed transiently.(package private) voidI2PSessionImpl.sendMessage(I2CPMessage message) Deliver an I2CP message to the router As of 0.9.3, may block for several seconds if the write queue to the router is full.(package private) voidSubSession.sendMessage(I2CPMessage message) Deliver an I2CP message to the router May block for several seconds if the write queue to the router is full.(package private) voidI2PSessionImpl.sendMessage_unchecked(I2CPMessage message) Deliver an I2CP message to the router.(package private) voidSubSession.sendMessage_unchecked(I2CPMessage message) Deliver an I2CP message to the router.protected booleanRequestLeaseSetMessageHandler.signLeaseSet(LeaseSet leaseSet, boolean isLS2, I2PSessionImpl session, I2CPMessage message, int attempt) Finish creating and signing the new LeaseSet and submitting it to the router, with the originating request attached so a transient signing failure can schedule a prompt re-run instead of leaving the router to wait out its 60-second check timeout.Uses of I2CPMessage in net.i2p.data.i2cp
Classes in net.i2p.data.i2cp that implement I2CPMessageModifier and TypeClassDescriptionclassTell the other side the limits.classAdvise the router that the endpoint is blinded.classLike CreateLeaseSetMessage, but supports both old and new LeaseSet types, including LS2, Meta, and Encrypted.classDefines the message a client sends to a router when authorizing the LeaseSet.classDefines the message a client sends to a router when establishing a new session.classRequest the router look up the dest for a hash.classResponse to DestLookupMessage.classDefines the message a client sends to a router when destroying existing session.classDefines the message a client sends to a router when destroying existing session.classRequest the router tells us the current bw limits.classRequest the other side to send us what they think the current time is.classRequest the router look up the dest for a hash or a host.classResponse to HostLookupMessage.classDefines the base message implementation.classDefines the payload message a router sends to the client.classDefines the message a router sends to a client about a single message.classDefines the message a client sends to a router when asking the router to start sending a message to it.classDefines the message a client sends to a router when asking the router to start sending a message to it.classDefines the message a client sends to a router when updating the config on an existing session.classDefines the message a client sends to a router when asking the router what its address visibility is.classDefines the message a router sends to a client to request that a leaseset be created and signed.classDefines the message a router sends to a client to request that a leaseset be created and signed.classSame as SendMessageMessage, but with an expiration to be passed to the routerclassDefines the message a client sends to a router to ask it to deliver a new message.classDefines the message a router sends to a client indicating the status of the session.classTell the other side what time it is.Methods in net.i2p.data.i2cp that return I2CPMessageModifier and TypeMethodDescriptionprivate static I2CPMessageI2CPMessageHandler.createMessage(int type) Yes, this is fairly ugly, but its the only place it ever happens.static I2CPMessageI2CPMessageHandler.readMessage(InputStream in) Read an I2CPMessage from the stream and return the fully populated object.Methods in net.i2p.data.i2cp with parameters of type I2CPMessageModifier and TypeMethodDescriptionvoidI2CPMessageReader.I2CPMessageEventListener.messageReceived(I2CPMessageReader reader, I2CPMessage message) Notify the listener that a message has been received from the given reader.Uses of I2CPMessage in net.i2p.internal
Classes in net.i2p.internal that implement I2CPMessageModifier and TypeClassDescriptionclassFor marking end-of-queues in a standard manner.Methods in net.i2p.internal that return I2CPMessageModifier and TypeMethodDescriptionabstract I2CPMessageI2CPMessageQueue.poll()Receive a message, non-blocking.abstract I2CPMessageI2CPMessageQueue.take()Receive a message, blocking until one is available.Methods in net.i2p.internal with parameters of type I2CPMessageModifier and TypeMethodDescriptionabstract booleanI2CPMessageQueue.offer(I2CPMessage msg) Send a message, nonblocking.abstract booleanI2CPMessageQueue.offer(I2CPMessage msg, long timeout) Send a message, blocking.abstract voidI2CPMessageQueue.put(I2CPMessage msg) Send a message, blocking until space is available.Uses of I2CPMessage in net.i2p.router.client
Fields in net.i2p.router.client with type parameters of type I2CPMessageModifier and TypeFieldDescriptionprivate final BlockingQueue<I2CPMessage> I2CPMessageQueueImpl._inQueue messages from the client arrive on.private final BlockingQueue<I2CPMessage> ClientWriterRunner._messagesToWriteMessages waiting to go out to the client.private final BlockingQueue<I2CPMessage> I2CPMessageQueueImpl._outQueue messages to the client are written to.Methods in net.i2p.router.client that return I2CPMessageModifier and TypeMethodDescriptionI2CPMessageQueueImpl.poll()Receive a message, non-blocking.I2CPMessageQueueImpl.take()Receive a message, blocking until one is available.Methods in net.i2p.router.client with parameters of type I2CPMessageModifier and TypeMethodDescriptionvoidClientWriterRunner.addMessage(I2CPMessage msg) Add this message to the writer's queue(package private) voidClientConnectionRunner.doSend(I2CPMessage msg) Actually send the I2CPMessage to the peer through the socket.(package private) voidQueuedClientConnectionRunner.doSend(I2CPMessage msg) Actually send the I2CPMessage to the client.(package private) voidClientConnectionRunner.doSendWait(I2CPMessage msg, long timeoutMs) Send a message, allowing the transport up to timeoutMs to accept it.(package private) voidQueuedClientConnectionRunner.doSendWait(I2CPMessage msg, long timeoutMs) Send the I2CPMessage, giving the client's queue up to timeoutMs to make room.voidClientMessageEventListener.messageReceived(I2CPMessageReader reader, I2CPMessage message) Handle an incoming message and dispatch it to the appropriate handler.booleanI2CPMessageQueueImpl.offer(I2CPMessage msg) Send a message, nonblocking.booleanI2CPMessageQueueImpl.offer(I2CPMessage msg, long timeout) Send a message, blocking.voidI2CPMessageQueueImpl.put(I2CPMessage msg) Send a message, blocking until space is available.(package private) voidClientConnectionRunner.writeMessage(I2CPMessage msg) Not thread-safe.(package private) voidQueuedClientConnectionRunner.writeMessage(I2CPMessage msg) In super(), doSend queues it to the writer thread and the writer thread calls writeMessage() to write to the output stream.Constructor parameters in net.i2p.router.client with type arguments of type I2CPMessageModifierConstructorDescriptionWrap a pair of queues as an I2CP message queue.