Class BTHandshake

    • Field Detail

      • BT_RESERVED

        private static final byte[] BT_RESERVED
      • LT_RESERVED

        private static final byte[] LT_RESERVED
      • AZ_RESERVED

        public static final byte[] AZ_RESERVED
      • RESERVED

        private static final byte[][] RESERVED
      • FAST_EXTENSION_ENABLED

        public static final boolean FAST_EXTENSION_ENABLED
        See Also:
        Constant Field Values
      • description

        private java.lang.String description
      • reserved_bytes

        private final byte[] reserved_bytes
      • datahash_bytes

        private final byte[] datahash_bytes
      • peer_id_bytes

        private final byte[] peer_id_bytes
      • version

        private final byte version
    • Constructor Detail

      • BTHandshake

        public BTHandshake​(byte[] data_hash,
                           byte[] peer_id,
                           int reserved_mode,
                           byte version)
        Used for outgoing handshake message.
        Parameters:
        data_hash -
        peer_id -
        set_reserve_bit -
      • BTHandshake

        private BTHandshake​(byte[] reserved,
                            byte[] data_hash,
                            byte[] peer_id,
                            byte version)
    • Method Detail

      • setMainlineDHTEnabled

        public static void setMainlineDHTEnabled​(boolean enabled)
      • setFastExtensionEnabled

        public static void setFastExtensionEnabled​(boolean enabled)
      • duplicate

        private static byte[] duplicate​(byte[] b)
      • constructBuffer

        private void constructBuffer()
      • getReserved

        public byte[] getReserved()
      • getDataHash

        public byte[] getDataHash()
      • getPeerId

        public byte[] getPeerId()
      • getID

        public java.lang.String getID()
        Description copied from interface: Message
        Get message id.
        Specified by:
        getID in interface Message
        Returns:
        id
      • getIDBytes

        public byte[] getIDBytes()
        Specified by:
        getIDBytes in interface Message
      • getFeatureID

        public java.lang.String getFeatureID()
        Description copied from interface: Message
        Get the main feature set name this message belongs to.
        Specified by:
        getFeatureID in interface Message
        Returns:
        feature id
      • getFeatureSubID

        public int getFeatureSubID()
        Description copied from interface: Message
        Get the static message sub-id for the feature.
        Specified by:
        getFeatureSubID in interface Message
        Returns:
        sub id
      • getType

        public int getType()
        Description copied from interface: Message
        Get message type.
        Specified by:
        getType in interface Message
        Returns:
        type
      • getVersion

        public byte getVersion()
        Specified by:
        getVersion in interface Message
      • getDescription

        public java.lang.String getDescription()
        Description copied from interface: Message
        Get textual description of this particular message.
        Specified by:
        getDescription in interface Message
        Returns:
        description
      • getData

        public DirectByteBuffer[] getData()
        Description copied from interface: Message
        Get message payload data.
        Specified by:
        getData in interface Message
        Returns:
        message data buffers
      • deserialize

        public Message deserialize​(DirectByteBuffer data,
                                   byte version)
                            throws MessageException
        Description copied from interface: Message
        Create a new instance of this message by decoding the given byte serialization.
        Specified by:
        deserialize in interface Message
        Parameters:
        data - to deserialize
        Returns:
        decoded message instance
        Throws:
        MessageException - if the decoding process fails NOTE: Does not auto-return given direct buffer on thrown exception.
      • getPriority

        public int getPriority()
        Description copied from interface: RawMessage
        Get the message's queue priority.
        Specified by:
        getPriority in interface RawMessage
        Returns:
        priority
      • isNoDelay

        public boolean isNoDelay()
        Description copied from interface: RawMessage
        Is this a no-delay message. No-delay messages are transmitted immediately, i.e. force-flushed out the transport.
        Specified by:
        isNoDelay in interface RawMessage
        Returns:
        true if a no-delay message
      • setNoDelay

        public void setNoDelay()
        Description copied from interface: RawMessage
        Set no-delay for this message
        Specified by:
        setNoDelay in interface RawMessage
      • messagesToRemove

        public Message[] messagesToRemove()
        Description copied from interface: RawMessage
        Get the yet-unsent message types that should be removed before queueing this message for sending.
        Specified by:
        messagesToRemove in interface RawMessage
        Returns:
        message types; null if no types
      • destroy

        public void destroy()
        Description copied from interface: Message
        Destroy the message; i.e. perform cleanup actions.
        Specified by:
        destroy in interface Message
      • getBaseMessage

        public Message getBaseMessage()
        Description copied from interface: RawMessage
        Get the message this raw message is based upon.
        Specified by:
        getBaseMessage in interface RawMessage
        Returns:
        original message