org.klomp.snark.dht
Interface DHT

All Known Implementing Classes:
KRPC

public interface DHT

Stub for KRPC

Since:
0.8.4

Method Summary
 void announce(byte[] ih)
          Announce to ourselves.
 void announce(byte[] ih, byte[] peerHash)
          Announce somebody else we know about.
 int announce(byte[] ih, int max, long maxWait)
          Announce to the closest DHT peers.
 Collection<Hash> getPeers(byte[] ih, int max, long maxWait)
          Get peers for a torrent.
 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.


getPeers

Collection<Hash> getPeers(byte[] ih,
                          int max,
                          long maxWait)
Get peers for a torrent. 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
Returns:
possibly empty (never null)

announce

void announce(byte[] ih)
Announce to ourselves. Non-blocking.

Parameters:
ih - the Info Hash (torrent)

announce

void announce(byte[] ih,
              byte[] peerHash)
Announce somebody else we know about. 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)
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.
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