Interface DHT

  • All Known Implementing Classes:
    KRPC

    public interface DHT
    Stub for KRPC
    Since:
    0.8.4
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void announce​(byte[] ih, boolean isSeed)
      Announce to ourselves.
      void announce​(byte[] ih, byte[] peerHash, boolean isSeed)
      Announce somebody else we know about to ourselves.
      int announce​(byte[] ih, int max, long maxWait, boolean isSeed)
      Announce to the closest DHT peers.
      Collection<Hash> getPeersAndAnnounce​(byte[] ih, int max, long maxWait, int annMax, long annMaxWait, boolean isSeed, boolean noSeeds)
      Get peers for a torrent, and announce to the closest annMax nodes we find.
      int getPort()  
      int getRPort()  
      void ping​(Destination dest, int port)
      Ping.
      String renderStatusHTML()
      Debug info, HTML formatted
      int size()
      Known nodes, not estimated total network size.
      void stop()
      Stop everything.
      void unannounce​(byte[] ih)
      Remove reference to ourselves in the local tracker.
    • Method Detail

      • getPort

        int getPort()
        Returns:
        The UDP query port
      • getRPort

        int getRPort()
        Returns:
        The UDP response port
      • ping

        void ping​(Destination dest,
                  int port)
        Ping. We don't have a NID yet so the node is presumed to be absent from our DHT. Non-blocking, does not wait for pong. If and when the pong is received the node will be inserted in our DHT.
      • getPeersAndAnnounce

        Collection<Hash> getPeersAndAnnounce​(byte[] ih,
                                             int max,
                                             long maxWait,
                                             int annMax,
                                             long annMaxWait,
                                             boolean isSeed,
                                             boolean noSeeds)
        Get peers for a torrent, and announce to the closest annMax nodes we find. Blocking! Caller should run in a thread.
        Parameters:
        ih - the Info Hash (torrent)
        max - maximum number of peers to return
        maxWait - the maximum time to wait (ms) must be > 0
        annMax - the number of peers to announce to
        annMaxWait - the maximum total time to wait for announces, may be 0 to return immediately without waiting for acks
        isSeed - true if seed, false if leech
        noSeeds - true if we do not want seeds in the result
        Returns:
        possibly empty (never null)
      • announce

        void announce​(byte[] ih,
                      boolean isSeed)
        Announce to ourselves. Non-blocking.
        Parameters:
        ih - the Info Hash (torrent)
      • announce

        void announce​(byte[] ih,
                      byte[] peerHash,
                      boolean isSeed)
        Announce somebody else we know about to ourselves. Non-blocking.
        Parameters:
        ih - the Info Hash (torrent)
        peerHash - the peer's Hash
      • unannounce

        void unannounce​(byte[] ih)
        Remove reference to ourselves in the local tracker. Use when shutting down the torrent locally. Non-blocking.
        Parameters:
        ih - the Info Hash (torrent)
      • announce

        int announce​(byte[] ih,
                     int max,
                     long maxWait,
                     boolean isSeed)
        Announce to the closest DHT peers. Blocking unless maxWait <= 0 Caller should run in a thread. This also automatically announces ourself to our local tracker. For best results do a getPeers() first so we have tokens.
        Parameters:
        ih - the Info Hash (torrent)
        maxWait - the maximum total time to wait (ms) or 0 to do all in parallel and return immediately.
        isSeed - true if seed, false if leech
        Returns:
        the number of successful announces, not counting ourselves.
      • stop

        void stop()
        Stop everything.
      • size

        int size()
        Known nodes, not estimated total network size.
      • renderStatusHTML

        String renderStatusHTML()
        Debug info, HTML formatted