Class DatabaseStoreMessage

  • All Implemented Interfaces:
    I2NPMessage

    public class DatabaseStoreMessage
    extends FastI2NPMessageImpl
    Defines the message a router sends to another router to test the network database reachability, as well as the reply message sent back. TODO: Don't decompress and recompress RouterInfos at the OBEP and IBGW. Could this even change the message length or corrupt things?
    Author:
    jrandom
    • Constructor Detail

      • DatabaseStoreMessage

        public DatabaseStoreMessage​(I2PAppContext context)
    • Method Detail

      • getKey

        public Hash getKey()
        Defines the key in the network database being stored
      • getEntry

        public DatabaseEntry getEntry()
        Defines the entry in the network database being stored
      • getReplyToken

        public long getReplyToken()
        If a reply is desired, this token specifies the message ID that should be used for a DeliveryStatusMessage to be sent to the reply tunnel on the reply gateway.
        Returns:
        positive reply token ID, or 0 if no reply is necessary.
      • getReplyTunnel

        public TunnelId getReplyTunnel()
      • setReplyTunnel

        public void setReplyTunnel​(TunnelId id)
      • getReplyGateway

        public Hash getReplyGateway()
      • setReplyGateway

        public void setReplyGateway​(Hash peer)
      • readMessage

        public void readMessage​(byte[] data,
                                int offset,
                                int dataSize,
                                int type)
                         throws I2NPMessageException
        Description copied from interface: I2NPMessage
        Read the body into the data structures, after the initial type byte and the uniqueId / expiration, using the current class's format as defined by the I2NP specification
        Parameters:
        data - data to read from
        offset - where to start in the data array
        dataSize - how long into the data to read
        type - I2NP message type
        Throws:
        I2NPMessageException - if the stream doesn't contain a valid message that this class can read.
      • getType

        public int getType()
        Description copied from interface: I2NPMessage
        Return the unique identifier for this type of I2NP message, as defined in the I2NP spec
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object