# Package org.klomp.snark

- Interface Summary
  Interface | Description
  --- | ---
  CoordinatorListener | Callback used when some peer changes state.
  DataLoader | Callback used to fetch data
  PeerListener | Listener for Peer events.
  ShutdownListener | Callback for end of shutdown sequence.
  Snark.CompleteListener |
  StorageListener | Callback used when Storage changes.

- Class Summary
  Class | Description
  --- | ---
  BitField | Container of a byte array representing set and unset bits.
  BWLimits | Connect via I2CP and ask the router the bandwidth limits.
  ConnectionAcceptor | Accepts connections on a TCP port and routes them to sub-acceptors.
  ExtensionHandler | REF: BEP 10 Extension Protocol
  I2PSnarkUtil | I2P specific helpers for I2PSnark We use this class as a sort of context for i2psnark so we can run multiple instances of single Snarks (but not multiple SnarkManagers, it is still static)
  MagnetState | Simple state for the download of the metainfo, shared between Peer and ExtensionHandler.
  Message |
  MetaInfo | Note: this class is buggy, as it doesn't propogate custom meta fields into the bencoded info data, and from there to the info_hash.
  PartialPiece | This is the class passed from PeerCoordinator to PeerState so PeerState may start requests.
  Peer |
  PeerAcceptor | Accepts incomming connections from peers.
  PeerCheckerTask | TimerTask that checks for good/bad up/downloader.
  PeerConnectionIn |
  PeerConnectionOut |
  PeerCoordinator | Coordinates what peer does what.
  PeerCoordinatorSet | Hmm, any guesses as to what this is? Used by the multitorrent functionality in the PeerAcceptor to pick the right PeerCoordinator to accept the con for.
  PeerID | Store the address information about a peer.
  PeerMonitorTask | TimerTask that monitors the peers and total up/download speeds.
  PeerState |
  Piece | This class is used solely by PeerCoordinator.
  Request | Holds all information needed for a partial piece request.
  Snark | Main Snark program startup class.
  SnarkManager | Manage multiple snarks
  SnarkShutdown | Makes sure everything ends correctly when shutting down.
  StaticSnark | Main snark startup class for staticly linking with gcj.
  Storage | Maintains pieces on disk.
  TrackerClient | Informs metainfo tracker of events and gets new peers for peer coordinator.
  TrackerInfo | The data structure for the tracker response.