package org.limewire.libtorrent;
import java.util.ArrayList;
import java.util.List;
import org.limewire.bittorrent.TorrentTracker;
import com.sun.jna.Pointer;
import com.sun.jna.Structure;
import com.sun.jna.WString;
public class LibTorrentInfo extends Structure {
public String sha1;
public WString name;
public long total_size;
public int piece_length;
public Pointer trackers;
public int num_trackers;
public Pointer seeds;
public int num_seeds;
public String created_by;
public String comment;
private List<TorrentTracker> trackers_internal = new ArrayList<TorrentTracker>();
private List<String> seeds_internal = new ArrayList<String>();
@Override
public void read() {
super.read();
if (num_trackers > 0) {
LibTorrentAnnounceEntry[] entries = (LibTorrentAnnounceEntry[]) new LibTorrentAnnounceEntry(
trackers).toArray(num_trackers);
for (int i = 0; i < entries.length; i++) {
LibTorrentAnnounceEntry entry = entries[i];
entry.read();
trackers_internal.add(entry);
}
}
if (num_seeds > 0) {
LibTorrentAnnounceEntry[] entries = (LibTorrentAnnounceEntry[]) new LibTorrentAnnounceEntry(
seeds).toArray(num_seeds);
for (int i = 0; i < entries.length; i++) {
LibTorrentAnnounceEntry entry = entries[i];
entry.read();
seeds_internal.add(entry.uri);
}
}
}
public List<TorrentTracker> getTrackers() {
return trackers_internal;
}
public List<String> getSeeds() {
return seeds_internal;
}
}