## Uses of Class
org.klomp.snark.MetaInfo

- Packages that use MetaInfo
  Package | Description
  --- | ---
  org.klomp.snark | I2P version of the snark bittorrent client, imported in 2005 and heavily enhanced to add a web UI, DHT support, and other features.

- - ### Uses of MetaInfo in org.klomp.snark

    Fields in org.klomp.snark declared as MetaInfo
    Modifier and Type | Field and Description
    --- | ---
    `protected MetaInfo` | Peer.`metainfo` will start out null in magnet mode
    `(package private) MetaInfo` | PeerCoordinator.`metainfo` External use by PeerMonitorTask only.

    Methods in org.klomp.snark that return MetaInfo
    Modifier and Type | Method and Description
    --- | ---
    `MetaInfo` | MagnetState.`getMetaInfo()`
    `MetaInfo` | Snark.`getMetaInfo()`
    `MetaInfo` | Storage.`getMetaInfo()` Returns the MetaInfo associated with this Storage.
    `MetaInfo` | PeerCoordinator.`getMetaInfo()`
    `MetaInfo` | MetaInfo.`reannounce(String announce)` Creates a copy of this MetaInfo that shares everything except the announce URL.

    Methods in org.klomp.snark with parameters of type MetaInfo
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | SnarkManager.`addTorrent(MetaInfo metainfo, BitField bitfield, String filename, File baseFile, boolean dontAutoStart)` Add a torrent from a MetaInfo.
    `void` | Snark.`gotMetaInfo(PeerCoordinator coordinator, MetaInfo metainfo)` Called when the PeerCoordinator got the MetaInfo via magnet.
    `void` | CoordinatorListener.`gotMetaInfo(PeerCoordinator coordinator, MetaInfo metainfo)` Called when the PeerCoordinator got the MetaInfo via magnet.
    `void` | Snark.`replaceMetaInfo(MetaInfo metainfo)` Call after editing torrent.
    `void` | MagnetState.`setMetaInfo(MetaInfo meta)` Call this for a new magnet when the download is complete.
    `void` | Peer.`setMetaInfo(MetaInfo meta)` Switch from magnet mode to normal mode
    `void` | PeerState.`setMetaInfo(MetaInfo meta)` Switch from magnet mode to normal mode.

    Constructors in org.klomp.snark with parameters of type MetaInfo
    Constructor and Description
    `MagnetState(byte[] iHash, MetaInfo meta)`
    `MetaInfo(MetaInfo old, String new_announce, List<List<String>> new_announce_list, String new_comment, String new_created_by, List<String> new_url_list)` Will not change infohash.
    `Peer(I2PSocket sock, InputStream in, OutputStream out, byte[] my_id, byte[] infohash, MetaInfo metainfo)` Incoming connection.
    `Peer(PeerID peerID, byte[] my_id, byte[] infohash, MetaInfo metainfo)` Outgoing connection.
    `PeerCoordinator(I2PSnarkUtil util, byte[] id, byte[] infohash, MetaInfo metainfo, Storage storage, CoordinatorListener listener, Snark torrent, BandwidthListener bwl)`
    `PeerState(Peer peer, PeerListener listener, BandwidthListener bwl, MetaInfo metainfo, PeerConnectionIn in, PeerConnectionOut out)`
    `Storage(I2PSnarkUtil util, File baseFile, MetaInfo metainfo, StorageListener listener, boolean preserveFileNames)` Creates a new storage based on the supplied MetaInfo.
    `TrackerClient(I2PSnarkUtil util, MetaInfo meta, String additionalTrackerURL, PeerCoordinator coordinator, Snark snark)` Call start() to start it.
    `TrackerInfo(InputStream in, byte[] my_id, byte[] infohash, MetaInfo metainfo, I2PSnarkUtil util)`
    `TrackerInfo(Set<Hash> hashes, int interval, int complete, int incomplete, String error, byte[] my_id, byte[] infohash, MetaInfo metainfo, I2PSnarkUtil util)` To convert returned UDPTracker data to the standard structure
    `WebPeer(PeerCoordinator coord, URI uri, PeerID peerID, MetaInfo metainfo)` Outgoing connection.