public class MetaInfo extends Object
Constructor and Description |
---|
MetaInfo(InputStream in)
Creates a new MetaInfo from the given InputStream.
|
MetaInfo(Map<String,BEValue> m)
Creates a new MetaInfo from a Map of BEValues and the SHA1 over
the original bencoded info dictonary (this is a hack, we could
reconstruct the bencoded stream and recalculate the hash).
|
MetaInfo(String announce,
String name,
String name_utf8,
List<List<String>> files,
List<Long> lengths,
int piece_length,
byte[] piece_hashes,
long length,
boolean privateTorrent,
List<List<String>> announce_list,
String created_by)
Called by Storage when creating a new torrent from local data
|
Modifier and Type | Method and Description |
---|---|
boolean |
checkPiece(int piece,
byte[] bs,
int off,
int length)
Checks that the given piece has the same SHA1 hash as the given
byte array.
|
(package private) boolean |
checkPiece(PartialPiece pp) |
String |
getAnnounce()
Returns the string representing the URL of the tracker for this torrent.
|
List<List<String>> |
getAnnounceList()
Returns a list of lists of urls.
|
String |
getComment()
The comment string or null.
|
String |
getCreatedBy()
The created-by string or null.
|
long |
getCreationDate()
The creation date (ms) or zero.
|
List<List<String>> |
getFiles()
Returns a list of lists of file name hierarchies or null if it is
a single name.
|
byte[] |
getInfoBytes() |
byte[] |
getInfoHash()
Returns the original 20 byte SHA1 hash over the bencoded info map.
|
List<Long> |
getLengths()
Returns a list of Longs indication the size of the individual
files, or null if it is a single file.
|
String |
getName()
Returns the requested name for the file or toplevel directory.
|
static String |
getNameAndInfoHash(InputStream in,
byte[] infoHashOut)
Efficiently returns the name and the 20 byte SHA1 hash of the info dictionary in a torrent file
Caller must close stream.
|
(package private) byte[] |
getPieceHashes()
Returns the piece hashes.
|
int |
getPieceLength(int piece)
Return the length of a piece.
|
int |
getPieces()
Returns the number of pieces.
|
byte[] |
getTorrentData()
Called by servlet to save a new torrent file generated from local data
|
long |
getTotalLength()
Returns the total length of the torrent in bytes.
|
boolean |
isPrivate()
Is it a private torrent?
|
static void |
main(String[] args) |
MetaInfo |
reannounce(String announce)
Creates a copy of this MetaInfo that shares everything except the
announce URL.
|
String |
toString() |
MetaInfo(String announce, String name, String name_utf8, List<List<String>> files, List<Long> lengths, int piece_length, byte[] piece_hashes, long length, boolean privateTorrent, List<List<String>> announce_list, String created_by)
announce
- may be nullfiles
- null for single-file torrentlengths
- null for single-file torrentannounce_list
- may be nullcreated_by
- may be nullpublic MetaInfo(InputStream in) throws IOException
IOException
public MetaInfo(Map<String,BEValue> m) throws InvalidBEncodingException
InvalidBEncodingException
public static String getNameAndInfoHash(InputStream in, byte[] infoHashOut) throws IOException
infoHashOut
- 20-byte out parameterIOException
public String getAnnounce()
public List<List<String>> getAnnounceList()
public byte[] getInfoHash()
byte[] getPieceHashes()
public String getName()
public boolean isPrivate()
public List<List<String>> getFiles()
public List<Long> getLengths()
public String getComment()
public String getCreatedBy()
public long getCreationDate()
public int getPieces()
public int getPieceLength(int piece)
getPieces()-1
).IndexOutOfBoundsException
- when piece is equal to or
greater then the number of pieces in the torrent.public boolean checkPiece(int piece, byte[] bs, int off, int length)
boolean checkPiece(PartialPiece pp)
public long getTotalLength()
public MetaInfo reannounce(String announce) throws InvalidBEncodingException
announce
- may be nullInvalidBEncodingException
public byte[] getTorrentData()
public byte[] getInfoBytes()
public static void main(String[] args)